如何通过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 文件重命名工具代码
Jul 26 Python
Python绘制七段数码管实例代码
Dec 20 Python
EM算法的python实现的方法步骤
Jan 02 Python
python实现图片彩色转化为素描
Jan 15 Python
Python3+Appium安装使用教程
Jul 05 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
基于Python获取城市近7天天气预报
Nov 26 Python
python爬虫基础知识点整理
Jun 02 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
pytorch 查看cuda 版本方式
Jun 23 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
如何获取numpy array前N个最大值
May 14 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语法(4)
2006/10/09 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
浅析is_writable的php实现
2013/06/18 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
学生会干部自荐信
2014/02/04 职场文书
税务干部鉴定材料
2014/02/11 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL