python生成全排列数,python生成排列数,#coding:utf-


#coding:utf-8#全排列发生器#http://www.byrx.net/codes/def a(n):     li=[]     for i in range(1,n+1):          li.append(i)     return lidef c(i,li_a):     li=[]     for j in li_a:          if  j!=i:               li.append(j)     return lidef form(i,li_c,one):     li=[]     li.append(i)     count=0     for i in one:          count=count+1          li.insert(count,li_c[i-1])     return lidef fun(n):     if n==2:          return [[1,2],[2,1]]     else:          back=[]#返回集合          li_a=a(n)          for i in li_a:#依次取li_a中的每一个               li_c=c(i,li_a)#生成li_a中除去i的补集               for one in fun(n-1):#取下一级的所有排列序                    #li=函数(第一位i,补集li_c,序数列表one)                    li=form(i,li_c,one)                    back.append(li)          return backli=fun(5)##dic={1:"圣",2:"诞",3:"节",4:"快乐"}##for li_in in li:##     word=""##     for i in li_in:##          word=dic[i]+word##     word="预祝大家:"+word##     print wordcount=1for i in li:     print str(count)+":"+str(i)     count=count+1

评论关闭