如何通过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天气预报采集器实现代码(网页爬虫)
Oct 07 Python
python避免死锁方法实例分析
Jun 04 Python
Python卸载模块的方法汇总
Jun 07 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python聊天室程序(基础版)
Apr 01 Python
Python面向对象程序设计示例小结
Jan 30 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 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的十大要点(上)
2009/02/04 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Ajax基础知识详解
2017/02/17 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python实现微信小程序自动回复
2018/09/10 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
python 操作hive pyhs2方式
2019/12/21 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
信用社竞聘演讲稿
2014/05/16 职场文书
党的群众路线调研报告
2014/11/03 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android