如何通过python实现全排列


Posted in Python onFebruary 11, 2020

这篇文章主要介绍了如何通过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 相关文章推荐
python中input()与raw_input()的区别分析
Feb 27 Python
python django事务transaction源码分析详解
Mar 17 Python
Python类装饰器实现方法详解
Dec 21 Python
对Python+opencv将图片生成视频的实例详解
Jan 08 Python
pandas取出重复数据的方法
Jul 04 Python
Python+Selenium使用Page Object实现页面自动化测试
Jul 14 Python
python3 求约数的实例
Dec 05 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
pytorch查看模型weight与grad方式
Jun 24 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 #Python
python 遗传算法求函数极值的实现代码
Feb 11 #Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 #Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 #Python
Python中包的用法及安装
Feb 11 #Python
使用Python实现牛顿法求极值
Feb 10 #Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 #Python
You might like
php学习之变量的使用
2011/05/29 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
js格式化时间的方法
2015/12/18 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
深入理解jquery中extend的实现
2016/12/22 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
python实现kNN算法
2017/12/20 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
员工廉洁自律承诺书
2014/05/26 职场文书
户籍证明书标准模板
2014/09/10 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
心理健康教育主题班会
2015/08/13 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js
解决MySQL报“too many connections“错误
2022/04/19 MySQL