PERMUTATIONS with delete - back to content

			Deletes an element from a list, first occurrence
		?- delete(a,[a,c,[a,b],f],R).
		R=[c,[a,b],f] 
		?- delete(X,[a,b,c],R).
		X = a
		R = [b,c]
		X = b
		R = [b,c]
		X = c
		R = [a,b]

		delete(X,[X|T],T).
		delete(X,[Y|T],[Y|R]):- delete(X,T,R).

Deletes all elements from a list found in a given list ?- delete_list([1,2,3],[1,4,2,5,3,7],R). R = [4,5,7]. ?- delete_list(X,[a,b],R). X = [] R = [a,b] X = [a] R = [b] X = [a,b] R = [] X = [b] R = [a] X = [b,a] R = [] delete_list([],L1,L1). delete_list([H|T],L1,L3):- delete(H,L1,L2),delete_list(T,L2,L3).
Permutation of a list ?- permut([a,b,c],L). L = [[a,b,c],[a,c,b],b,a,c],[b,c,a],[c,a,b],[c,b,a]] permut(L,R):- findall(X,delete_list(X,L,[]),R).