给定数组 nums = [1, 2, 3, 4],其排列组合共有 种,这里我们需要列出所有的排列组合。
采用递归法进行求:
nums = [1, 2, 3, 4]
def recursion(num):
if len(num) == 1:
return [num]
d = []
for i in range(len(num)): # 这里不懂得话可以从 nums = [1, 2] 开始
for j in recursion(num[:i]+num[i+1:]):
d.append([num[i]] + j)
return d
print(recursion(nums))
输出:
[[1, 2, 3, 4], [1, 2, 4, 3], [1, 3, 2, 4], [1, 3, 4, 2], [1, 4, 2, 3], [1, 4, 3, 2], [2, 1, 3, 4], [2, 1, 4, 3], [2, 3, 1, 4], [2, 3, 4, 1], [2, 4, 1, 3], [2, 4, 3, 1], [3, 1, 2, 4], [3, 1, 4, 2], [3, 2, 1, 4], [3, 2, 4, 1], [3, 4, 1, 2], [3, 4, 2, 1], [4, 1, 2, 3], [4, 1, 3, 2], [4, 2, 1, 3], [4, 2, 3, 1], [4, 3, 1, 2], [4, 3, 2, 1]]



