Faktoryzacja Pythona

Chciałbym tylko znać najlepszy sposób wyliczenia wszystkich czynników całkowitych liczby, z podaniem słownika czynników głównych i ich wykładników.
Na przykład jeśli mamy {2: 3, 3: 2, 5: 1} (2 ^ 3 * 3 ^ 2 * 5 = 360)
Wtedy mógłbym napisać:

<code>for i in range(4):
  for j in range(3):
    for k in range(1):
      print 2**i * 3**j * 5**k
</code>

Ale tutaj mam 3 straszne pętle. Czy jest to możliwe do abstrakcji w funkcji, której podano dowolną faktoryzację jako argument obiektu słownika?

questionAnswers(5)

yourAnswerToTheQuestion