lst = list(map(list, itertools.product([0, 1], repeat=n)))
# OR
lst = [list(i) for i in itertools.product([0, 1], repeat=n)]
Обратите внимание, что использование map или понимание списка означает, что вам не нужно преобразовывать продукт в список, так как он будет проходить через объект itertools.product и создавать список.
Ответ 2
Без использования каких-либо встроенных функций или умных методов мы можем получить как это
def per(n):
for i in range(1<<n):
s=bin(i)[2:]
s='0'*(n-len(s))+s
print map(int,list(s))
per(3)