python常规方法实现数组的全排列


Posted in Python onMarch 17, 2015

本文实例讲述了常规方法实现python数组的全排列操作。分享给大家供大家参考。具体分析如下:

全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

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

调用方法:

if __name__=='__main__': 
  """ default param is list(1,2,3,4,5) """
  l=[]; 
  if(len(sys.argv)<=1): 
    """input=['%d' %(i) for i in xrange(1,6)]"""
    l=list((1,2,3,4,5))
  else:#input param looks like "2,3,4,5,6",no legal checks here.
    input=str(sys.argv[1])
    l=input.split(",") 
    for i in xrange(len(l)): 
      l[i] = int(l[i]) 
  print perm(l)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python进阶教程之文本文件的读取和写入
Aug 29 Python
Python网站验证码识别
Jan 25 Python
详解python的数字类型变量与其方法
Nov 20 Python
Python3多线程操作简单示例
May 22 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
django 简单实现登录验证给你
Nov 06 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Python如何重新加载模块
Jul 29 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
python标准算法实现数组全排列的方法
Mar 17 #Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 #Python
python回溯法实现数组全排列输出实例分析
Mar 17 #Python
使用Python实现下载网易云音乐的高清MV
Mar 16 #Python
python使用点操作符访问字典(dict)数据的方法
Mar 16 #Python
python用来获得图片exif信息的库实例分析
Mar 16 #Python
python通过pil模块获得图片exif信息的方法
Mar 16 #Python
You might like
深入探究PHP的多进程编程方法
2015/08/18 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
js setattribute批量设置css样式
2009/11/26 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python基础教程之缩进介绍
2014/08/29 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python把转列表为集合的方法
2019/06/28 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python 如何查找特定类型文件
2020/08/17 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
什么是类的返射机制
2016/02/06 面试题
JDK安装目录下有哪些内容
2014/08/25 面试题
一道写SQL的面试题和答案
2013/11/19 面试题
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
技术股东合作协议书
2014/12/02 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android