Переставляемые комбинации элементов списка - Prolog

Как я могу сгенерировать все возможные комбинации элементов списка?

Например, учитывая список [1,2,3] , я хочу разработать предикат с формой comb ([1,2,3], L). ] который должен вернуть следующий ответ для L :

[1]  
[2]  
[3]  
[1,2]  
[2,1]  
[1,3]  
[3,1]  
[2,3] 
[3,2]  
[1,2,3]  
[1,3,2]  
[2,1,3]  
[2,3,1]  
[3,1,2]  
[3,2,1] 
10
задан Guy Coder 25 January 2019 в 14:52
поделиться