小編給大家分享一下怎樣通過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實現全排列”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。