permute ([], []). permute ([E|X], Z):- permute (X, Y), insert (E, Y, Z). insert (E, X, [E|X]). insert (E, [F|X], [F|Y]):- insert (E, X, Y). marquise(RESULT):- permute (["beautiful marquise", "your beautiful eyes", "make me", "die", "of love" ], RESULT).