Prolog 长度为 N 的二进制数

Prolog Binary Numbers of length N

我如何创建谓词以获取长度为 N 的二进制数的所有可能组合?

示例 -> 如果长度 N = 3,则输出为

L = [0,0,0]

L = [0,0,1]

L = [0,1,0]

L = [0,1,1]

L = [1,0,0]

L = [1,0,1]

L = [1,1,0]

L = [1,1,1]

错误

binary_list(0,[]).
binary_list(N,[X|Xs]) :-
    N > 0,
    member(X,[0,1]),
    N1 is N-1,
    binary_list(N1,Xs).