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

时间:2022-04-29 16:09:25

本文实例讲述了常规方法实现python数组的全排列操作。分享给大家供大家参考。具体分析如下:

全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

  1. def perm(l): 
  2.   if(len(l)<=1): 
  3.     return [l] 
  4.   r=[] 
  5.   for i in range(len(l)): 
  6.     s=l[:i]+l[i+1:] 
  7.     p=perm(s) 
  8.     for x in p: 
  9.       r.append(l[i:i+1]+x) 
  10.   return r 

调用方法:

  1. if __name__=='__main__':  
  2.   """ default param is list(1,2,3,4,5) """ 
  3.   l=[];  
  4.   if(len(sys.argv)<=1):  
  5.     """input=['%d' %(i) for i in xrange(1,6)]""" 
  6.     l=list((1,2,3,4,5)) 
  7.   else:#input param looks like "2,3,4,5,6",no legal checks here. 
  8.     input=str(sys.argv[1]) 
  9.     l=input.split(",")  
  10.     for i in xrange(len(l)):  
  11.       l[i] = int(l[i])  
  12.   print perm(l) 

希望本文所述对大家的Python程序设计有所帮助。