如何通過python實現(xiàn)全排列
更新時間:2020年02月11日 08:49:10 作者:xushukui
這篇文章主要介紹了如何通過python實現(xiàn)全排列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
這篇文章主要介紹了如何通過python實現(xiàn)全排列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
itertools模塊現(xiàn)成的全排列:
for i in itertools.permutations('abcd',4): print ''.join(i)
相關(guān)全排列算法:
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 "調(diào)用perm函數(shù)" if begin>=end: print lis else: i = begin for num in range(begin,end): lis[num],lis[i] = lis[i],lis[num] #固定當(dāng)前位置,在進(jìn)行下一位的排列 #print "-----num:%d,begin:%d"%(num,begin) perm(lis,begin+1,end) #print "*****num:%d,begin:%d"%(num,begin) #調(diào)用結(jié)束之后還需要回溯將交換位置的元素還原,以供其他下降路徑使用(二叉樹) lis[num],lis[i] = lis[i],lis[num] lis = [1,2,3,4] perm(lis,0,len(lis))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python Pandas工具繪制數(shù)據(jù)圖使用教程
Pandas是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas還可以繪制多重數(shù)據(jù)圖表,本文將為大家介紹如何通過Pandas繪制圖表,感興趣的可以了解一下2021-12-12python實現(xiàn)輸入三角形邊長自動作圖求面積案例
這篇文章主要介紹了python實現(xiàn)輸入三角形邊長自動作圖求面積案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python實現(xiàn)樸素貝葉斯的學(xué)習(xí)與分類過程解析
這篇文章主要介紹了Python實現(xiàn)樸素貝葉斯的學(xué)習(xí)與分類過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08