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程序设计有所帮助。

相关文章

Python动态语言与鸭子类型详解

今天来说说编程语言中的动态类型语言与鸭子类型。 动态语言 维基百科对动态语言的定义: 动态编程语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数...

python如何实现远程控制电脑(结合微信)

不知道大家有没有这样一个烦恼,“自己的电脑总是被别人使用,又不好意思设置密码”,所以利用python设计了一个程序来实现自由管控。 功能虽然简单,但大家可以通过其思路来实现更多的功能。...

python计算对角线有理函数插值的方法

本文实例讲述了python计算对角线有理函数插值的方法。分享给大家供大家参考。具体实现方法如下: ''' p = rational(xData,yData,x) Evaluate...

django上传图片并生成缩略图方法示例

django 处理上传图片生成缩略图首先要注意form标签上必须有enctype="multipart/form-data"属性,另外要装好PIL库, 然后就很简单了,如下是实例代码:...

python 利用for循环 保存多个图像或者文件的实例

在实际应用中,会遇到保存多个文件或者图像的操作,利用for循环可以实现基本要求: for i in range(50): plt.savefig("%d.jpg"%(i+1))...