Tout d'abord, une remarque sur ton bout de code:


permut([X1|L1],[X2|L2]):-X1=X2.
peut être écrit comme

permut([X1|L1],[X1|L2]).
Ce qui en fait un code plus lisible car on voit directement...