`
provista
  • 浏览: 120349 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

全排列的Python实现

阅读更多
啥也不说了,碰巧看到,就存着,OVER。

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)
分享到:
评论
1 楼 lseeo 2009-09-09  
非常不错!

相关推荐

Global site tag (gtag.js) - Google Analytics