% cat 0, N1 is N - 1, makehouses(N1,List). X on List :- member(X, List). sublist2([S1, S2], [S1, S2 | _]) . sublist2(S, [_ | T]) :- sublist2(S, T). nextto(H1, H2, L) :- sublist2([H1, H2], L). nextto(H1, H2 ,L) :- sublist2([H2, H1], L).