Помогите решить задачку о нахождении всех перестановок элементов списка на прологе? Это не для вуза, для самообразования. Долго пытался, но не смог. Что-то важное не могу постичь.
DOMAINS
list = integer*
PREDICATES
permutations(list, list)
Например, для permutations([1,2,3], X) должен вывести (не обязательно в таком порядке):
X=[1,2,3]
X=[1,3,2]
X=[2,1,3]
X=[2,3,1]
X=[3,1,2]
X=[3,2,1]