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

yipeiwu_com6年前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中的并发处理之asyncio包使用的详解

导语:本文章记录了本人在学习Python基础之控制流程篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流。 本文重点: 1、了解asyncio包的功能和使用方法;...

10分钟教你用Python实现微信自动回复功能

10分钟教你用Python实现微信自动回复功能

 01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息。但微信又不能像QQ一样设置自动回复。无妨,今天,我们就来用Python实现微信的自动回复功能...

Python2中的raw_input() 与 input()

这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。举两个小例子。 >>> raw_input_A = raw_inpu...

django框架模型层功能、组成与用法分析

本文实例讲述了django框架模型层功能、组成与用法。分享给大家供大家参考,具体如下: Django models是Django框架自定义的一套独特的ORM技术。 使用该层开发的首要任务...

python自动发微信监控报警

python自动发微信监控报警

我们每个人每天都是在用微信,在程序开发过程中,我们会需要监控我们的程序,发短信监控收费,发邮件懒得看,发微信是最好的方式,而且是免费的。发现个非常好用的python库:wxpy。wxpy...