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中的ceil()方法使用教程
May 14 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
Python 中 Virtualenv 和 pip 的简单用法详解
Aug 18 Python
python机器学习之决策树分类详解
Dec 20 Python
和孩子一起学习python之变量命名规则
May 27 Python
python创建文件备份的脚本
Sep 11 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
python [:3] 实现提取数组中的数
Nov 27 Python
一文读懂python Scrapy爬虫框架
Feb 24 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的curl封装类用法实例
2014/11/07 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
基于Python的接口测试框架实例
2016/11/04 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
python中import reload __import__的区别详解
2017/10/16 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python-接口开发入门解析
2019/08/01 Python
一文读懂Python 枚举
2020/08/25 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
群众路线教育实践活动方案
2014/02/02 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server
Hive常用日期格式转换语法
2022/06/25 数据库