如何用Python编写程序生成任意序列的全排列?
- 内容介绍
- 文章标签
- 相关推荐
本文共计425个文字,预计阅读时间需要2分钟。
这篇文章主要介绍了如何通过Python实现全排列,并通过示例代码进行了详细说明。对于想要学习或从事相关工作的大家来说,具有一定的参考价值。需要的伙伴可以参考以下内容:
使用itertools模块实现全排列的示例代码:
pythonfrom itertools import permutations
要排列的元素列表elements=['a', 'b', 'c']
获取全排列all_permutations=permutations(elements)
打印全排列结果for perm in all_permutations: print(''.join(perm))
这篇文章主要介绍了如何通过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))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计425个文字,预计阅读时间需要2分钟。
这篇文章主要介绍了如何通过Python实现全排列,并通过示例代码进行了详细说明。对于想要学习或从事相关工作的大家来说,具有一定的参考价值。需要的伙伴可以参考以下内容:
使用itertools模块实现全排列的示例代码:
pythonfrom itertools import permutations
要排列的元素列表elements=['a', 'b', 'c']
获取全排列all_permutations=permutations(elements)
打印全排列结果for perm in all_permutations: print(''.join(perm))
这篇文章主要介绍了如何通过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))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

