网络编程
位置:首页>> 网络编程>> Python编程>> 如何通过python实现全排列

如何通过python实现全排列

作者:xushukui  发布时间:2022-11-30 16:49:46 

标签:python,全,排列

这篇文章主要介绍了如何通过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))

来源:https://www.cnblogs.com/nyist-xsk/p/9463495.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com