Python combinación con reemplazo

Abajo está mi código

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

Salida

(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)

Solo se imprimen 10 resultados, pero por fórmula, debe ser 3 ^ 3 = 27 resultados.

Entonces, ¿puedo saber cómo obtener la otra salida?
Sinceramente gracias por su tiempo y sugerencia.

Respuestas a la pregunta(1)

Su respuesta a la pregunta