如何通过python实现全排列

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

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

标签:python,全,排列
0
投稿

猜你喜欢

  • 在Python程序中进行文件读取和写入操作的教程

    2023-05-22 10:31:56
  • python被修饰的函数消失问题解决(基于wraps函数)

    2021-07-22 17:32:34
  • PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】

    2023-09-11 08:28:26
  • IE的有条件注释详解(附实例代码)

    2009-03-31 13:01:00
  • python编程的核心知识点总结

    2023-09-26 21:24:24
  • Python 类的私有属性和私有方法实例分析

    2021-06-18 05:13:47
  • 用python删除文件夹中的重复图片(图片去重)

    2021-07-23 22:42:36
  • 一些CSS样式书写技巧

    2007-10-16 12:57:00
  • Python实现密钥密码(加解密)实例详解

    2022-09-10 12:03:37
  • python神经网络学习使用Keras进行回归运算

    2023-01-30 14:08:45
  • 利用phpmyadmin设置mysql的权限方法

    2023-11-24 02:12:46
  • 比较全面的PHP数组的使用方法小结

    2023-11-18 21:30:25
  • python多线程同步实例教程

    2022-08-15 20:45:19
  • Python 函数装饰器应用教程

    2022-08-17 05:53:24
  • python自定义时钟类、定时任务类

    2021-02-12 12:21:37
  • asp空间判断jmail组件是否安装或支持的代码

    2011-02-16 10:49:00
  • Yii2 rbac权限控制之菜单menu实例教程

    2023-11-14 10:41:19
  • 如何解决MySQL的客户端不支持鉴定协议

    2008-11-27 17:10:00
  • django ModelForm修改显示缩略图 imagefield类型的实例

    2021-04-28 16:16:37
  • IE地址栏显示网站图标制作方法

    2007-10-13 11:08:00
  • asp之家 网络编程 m.aspxhome.com