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

yipeiwu_com7年前Python基础

本文实例讲述了常规方法实现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程序设计有所帮助。

相关文章

PyCharm-错误-找不到指定文件python.exe的解决方法

PyCharm-错误-找不到指定文件python.exe的解决方法

1、现象 系统提示找不到指定的文件: Error running 'hello': Cannot run program "B:\pystudy\venv\Scripts\python....

基于Python2、Python3中reload()的不同用法介绍

reload() 简介 作用:用于重新载入之前载入的模块 语法格式:reload(module) 参数:module为模块对象,必须已经被加载 返回值:返回模块对象 注意事项: 多次重复...

详解在Python程序中解析并修改XML内容的方法

需求 在实际应用中,需要对xml配置文件进行实时修改, 1.增加、删除 某些节点 2.增加,删除,修改某个节点下的某些属性 3.增加,删除,修改某些节点的文本 使用xml文档 &l...

kNN算法python实现和简单数字识别的方法

kNN算法python实现和简单数字识别的方法

本文实例讲述了kNN算法python实现和简单数字识别的方法。分享给大家供大家参考。具体如下: kNN算法算法优缺点: 优点:精度高、对异常值不敏感、无输入数据假定 缺点:时间复杂度和空...

Python中pip更新和三方插件安装说明

Python中pip更新和三方插件安装说明

一、Python安装: 最新Python版本的下载和安装可以参考我的这篇博客,里面有步骤说明和注意事项。 二、手动更新pip:在安装第三方插件时如果提示pip版本需更新,可以这样做: 1...