Jak wygenerować kombinacje list?

Chcę stworzyć listę list, która reprezentuje wszystkie możliwe kombinacje liczb 0 i 1. Listy mają długość n.

Wyjście powinno wyglądać następująco. Dla n = 1:

[ [0], [1] ]

Dla n = 2:

[ [0,0], [0, 1], [1,0], [1, 1] ]

Dla n = 3:

[ [0,0,0], [0, 0, 1], [0, 1, 1]... [1, 1, 1] ]

Spojrzałem na itertools.combinations, ale powoduje to tworzenie krotek, a nie list. [0,1] i [1,0] są odrębnymi kombinacjami, podczas gdy istnieje tylko jedna krotka (0,1) (kolejność nie ma znaczenia).

Wszelkie wskazówki lub sugestie? Próbowałem kilku technik rekurencyjnych, ale nie znalazłem rozwiązania.

questionAnswers(4)

yourAnswerToTheQuestion