依然饭跑跑 发表于 2017-4-25 09:31:09

全排列的Python实现

啥也不说了,碰巧看到,就存着,OVER。

def perm(l):
if(len(l)<=1):
return
r=[]
for i in range(len(l)):
s=l[:i]+l
p=perm(s)
for x in p:
r.append(l+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)
l=input.split(",")
for i in xrange(len(l)):
l = int(l)
print perm(l)
页: [1]
查看完整版本: 全排列的Python实现