Why doesn't itertools.combination_with_replacement give 27 results for length-3 combinations of 3 values?

Question:

Below is my code

import itertools
a = [1,2,3]
for i in itertools.combination_with_replacement(a,3):
    print i

Output

(1, 1, 1),(1, 1, 2)
(1, 1, 3),(1, 2, 2)
(1, 2, 3),(1, 3, 3)
(2, 2, 2),(2, 2, 3)
(2, 3, 3),(3, 3, 3)

Only 10 result is print out, but by formula, it should be 3^3 = 27 output.

So may i know, how to get the other output?
Sincerely thank for your time and suggestion.

Asked By: Math

||

Answers:

You want cartesian product, not combinations.

import itertools
print list(itertools.product([1, 2, 3], repeat=3))
Answered By: Paul Hankin
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.