def permuta(lista):
	n = len(lista)
	permutazioni = []
	if n == 1:
		permutazioni.append([lista[0]])
	else:
		for i in range(n):
			lista_temp = lista[:] 
			rimuovi = lista_temp.pop(i)
			perm_temp = permuta(lista_temp)
			for x in perm_temp:
				aggiungi = [rimuovi] + x
				permutazioni.append(aggiungi)
	return permutazioni

lista = [1,2,3,4] # lista di prova

permutazioni = permuta(lista)
print permutazioni