Math
Math

Reputation: 81

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

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.

Upvotes: 6

Views: 10384

Answers (1)

Paul Hankin
Paul Hankin

Reputation: 58319

You want cartesian product, not combinations.

import itertools
print list(itertools.product([1, 2, 3], repeat=3))

Upvotes: 15

Related Questions