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的dict,set,list,tuple应用详解
Jul 24 Python
Python datetime时间格式化去掉前导0
Jul 31 Python
Python实现豆瓣图片下载的方法
May 25 Python
python读取excel表格生成erlang数据
Aug 26 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
PHP新手上路(十四)
2006/10/09 PHP
php实现mysql封装类示例
2014/05/07 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
Python基础语法(Python基础知识点)
2016/02/28 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
python3注册全局热键的实现
2020/03/22 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
临床医师专业个人自我评价范文
2013/11/07 职场文书
家长学校实施方案
2014/03/15 职场文书
代理人委托书
2014/08/01 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang