如何通过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 16 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
python实现简单的学生管理系统
Feb 22 Python
python元组拆包实现方法
Feb 28 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 Python
Python如何让字典保持有序排列
Apr 29 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的字符串用法小结
2010/06/08 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python yield 小结和实例
2014/04/25 Python
python之Character string(实例讲解)
2017/09/25 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
python3调用windows dos命令的例子
2019/08/14 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
python遍历路径破解表单的示例
2020/11/21 Python
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
失职检讨书大全
2015/01/26 职场文书
文案策划岗位职责
2015/02/11 职场文书
钢琴师观后感
2015/06/12 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技