Federico Lolli
Federico Lolli

Reputation: 173

Get all combination of list with repeated values

How can i get a list of all possible values of a list with also repeated ones?

I've tried itertools.combination_with_replacement and itertools.permutation but the first exclude the inverted order (such as [3, 2, 1]) and the second exclude multiple values (such as [3, 3, 1]).

I need something like this:

Example:

list = [1, 2, 3]

results =
[1, 1, 1]
[1, 1, 2]
[1, 1, 3]
...
[3, 1, 1]
[3, 1, 2]
[3, 1, 3]
...

What can I do in Python to achieve this? Thanks in advance.

Upvotes: 2

Views: 138

Answers (1)

Moses Koledoye
Moses Koledoye

Reputation: 78564

You're looking for itertools.product, setting the repetition to 3:

>>> from itertools import product
>>> lst = [1, 2, 3]
>>> list(product(lst, repeat=3))
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)]

Upvotes: 4

Related Questions