如何通过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函数缺省值与引用学习笔记分享
Feb 10 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
itchat接口使用示例
Oct 23 Python
Python实现的计算器功能示例
Apr 26 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
python实现录音小程序
Oct 26 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
Python如何在DataFrame增加数值
Feb 14 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python 如何实现遗传算法
Sep 22 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHPlet在Windows下的安装
2006/10/09 PHP
composer.lock文件的作用
2016/02/03 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
用js遍历 table的脚本
2008/07/23 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
Python三级菜单的实例
2017/09/13 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python3.5运算符操作实例详解
2019/04/25 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
python开发一款翻译工具
2020/10/10 Python
积极向上的团队口号
2014/06/06 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
西游降魔篇观后感
2015/06/15 职场文书
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL