Algoritmo per generare tutte le permutazioni tra due numeri

Questo mi è costato sangue...
#!/usr/bin/python

def permutazioni(init,num):
 ris=[]
 perms=[[init]]
 n=1
 while n <= (num-init):
  ris=[]
  for perm in perms:
   i=0
   while i <= n:
     tmp=[]
     tmp.extend(perm)
     tmp.insert(i,(init+n))
     ris.append(tmp)
     i+=1
  perms=ris
  n+=1

 return ris

ris=permutazioni(0,1)
ris.sort()
for ri in ris:
 print ri
print "len:"
print len(ris)

1 commento :

Andrea Gelmini ha detto...

Meraviglioso! Ci stava sbattendo la testa anch'io da un po' di giorni...

Grazie,
Gelma