Using itertools.product()
:
product = itertools.product(L, repeat=n)
where product
is now a iterable; call list(product)
if you want to materialize that to a full list:
>>> from itertools import product
>>> list(product(range(3), repeat=2))
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]