數組的全排列 python實現


全排列就是 比如【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))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM