如何通过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基类函数的重载与调用实例分析
Jan 12 Python
九步学会Python装饰器
May 09 Python
Python编写登陆接口的方法
Jul 10 Python
python实现外卖信息管理系统
Jan 11 Python
pandas数值计算与排序方法
Apr 12 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
详解php用static方法的原因
2018/09/12 PHP
PHP 实现重载
2021/03/09 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
JavaScript回调函数callback用法解析
2020/01/14 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
编程语言Python的发展史
2014/09/26 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
关于爱情的广播稿
2014/01/16 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
健康教育主题班会
2015/08/14 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书