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使用sessions模拟登录淘宝的方式

之前想爬取一些淘宝的数据,后来发现需要登录,找了很多的资料,有个使用request的sessions加上cookie来登录的,cookie的获取在登录后使用开发者工具可以找到。不过这个登...

Django在win10下的安装并创建工程

Django在win10下的安装并创建工程

Django的核心(1.4+)可以运行在从2.5到2.7之间的任何Python版本。 我的电脑是操作系统是window10 ,内存是4G。 1。下载django 官网地址:https...

详解Python并发编程之创建多线程的几种方法

大家好,并发编程 今天开始进入第二篇。 今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能很顺畅地跟着我的思路理解以后的文章。 本文...

Python中threading模块join函数用法实例分析

本文实例讲述了Python中threading模块join函数用法。分享给大家供大家参考。具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕。通用的做法是我们启动一批线...

python中pass语句用法实例分析

本文实例讲述了python中pass语句用法。分享给大家供大家参考。具体分析如下: 1、空语句 do nothing 2、保证格式完整 3、保证语义完整 4、以if语句为例: C/C++...