如何通过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写asp详细讲解
Dec 16 Python
python使用super()出现错误解决办法
Aug 14 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
python实现梯度下降和逻辑回归
Mar 24 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
PyTorch dropout设置训练和测试模式的实现
May 27 Python
Python语言内置数据类型
Feb 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
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
Python的Flask框架中web表单的教程
2015/04/20 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
高效使用Python字典的清单
2018/04/04 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
中海讯通笔试题
2015/09/15 面试题
.NET是怎么支持多种语言的
2015/02/24 面试题
机械设备与数控技术专业求职信
2014/08/10 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
三方协议书
2015/01/27 职场文书
广告业务员岗位职责
2015/02/13 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
变长双向rnn的正确使用姿势教学
2021/05/31 Python
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技