% -*- Prolog -*-
% $Id: 031,v 1.3 2000/07/12 14:20:23 peteg Exp $

permutation([], []) :- !.
permutation(Xs, [Z|Zs]) :-
	select(Z, Xs, Ys),
	permutation(Ys, Zs).

select(X, [X|Xs], Xs).
select(X, [Y|Ys], [Y|Zs]) :- select(X, Ys, Zs).

main :- permutation([a, b, c, d], X),
	write(X), nl, fail.
