permute([], []).
permute(L, [H|S]) :-
	delete(H, L, NL),
	permute(NL, S).

delete(H, [H|L], L).
delete(X, [H|L], [H|NL]) :-
	delete(X, L, NL).
