ho trovato un sistema ma dubito sia il più efficiente (cosi' si spreca molta potenza di calcolo in calcoli gia' fatti) ma pelomeno funziona, il grosso problema dell'altro metodo e' il dover creare una nuova variabile ad ogni iterazione
codice:
def disp(lista,n):
w = len(lista)
tot = 1
while w != (len(lista)-n):
tot = tot*w
w=w-1
from random import *
print "ci sono",tot,"possibili combinazioni"
dispo = []
while len(dispo) != tot:
shuffle(lista)
d = lista[0:n]
if d not in dispo:
dispo.append(d)
return dispo