溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣通過python實現全排列

發布時間:2021-02-01 13:42:38 來源:億速云 閱讀:260 作者:小新 欄目:開發技術

小編給大家分享一下怎樣通過python實現全排列,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

itertools模塊現成的全排列:

for i in itertools.permutations('abcd',4):
  print ''.join(i)

相關全排列算法:

def perm(l): 
  if(len(l)<=1): 
    return [l] 
  r=[] 
  for i in range(len(l)): 
    s=l[:i]+l[i+1:] 
    p=perm(s) 
    for x in p: 
      r.append(l[i:i+1]+x) 
  return r
#遞歸,下降二叉樹
def perm(lis,begin,end):
  #print "調用perm函數"
  if begin>=end:
    print lis
  else:
    i = begin 
    for num in range(begin,end):
      lis[num],lis[i] = lis[i],lis[num] #固定當前位置,在進行下一位的排列
      #print "-----num:%d,begin:%d"%(num,begin)
      perm(lis,begin+1,end)
      #print "*****num:%d,begin:%d"%(num,begin)
      #調用結束之后還需要回溯將交換位置的元素還原,以供其他下降路徑使用(二叉樹)
      lis[num],lis[i] = lis[i],lis[num]

lis = [1,2,3,4]
perm(lis,0,len(lis))

看完了這篇文章,相信你對“怎樣通過python實現全排列”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女