Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python combination with replacement

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.

like image 379
Math Avatar asked Dec 20 '22 06:12

Math


1 Answers

You want cartesian product, not combinations.

import itertools
print list(itertools.product([1, 2, 3], repeat=3))
like image 172
Paul Hankin Avatar answered Dec 22 '22 00:12

Paul Hankin