全排列就是 比如【1, 2,3】的全排列就是
[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
我們直接看代碼吧。
#這個函數的意思是 對 nums從下標p一直到q的全排列。
def permutation(nums, p, q): if p == q:
#這里使用 list(nums)是因為如果直接添加 添加的都是指向nums所存數組的地址 nums變化了 s里面的數組內容也會跟着變化。
s.append(list(nums)) else: for i in range(p, q): nums[i], nums[p] = nums[p], nums[i] permutation(nums, p+1, q) nums[i], nums[p] = nums[p], nums[i] s= [] nums = [i for i in range(1, 4)] permutation(nums, 0, len(nums)) print(s)
也可以直接調用 itertools里的 permutations
直接進行全排列
它里面有兩個參數,一個是 可迭代的對象,一直是全排列的數組元素個數。
直接使用這個就行了permutations(nums, len(nums))
