Fatorização Python

Eu gostaria apenas de saber a melhor maneira de listar todos os fatores inteiros de um número, dado um dicionário de seus fatores primos e seus expoentes.
Por exemplo, se tivermos {2: 3, 3: 2, 5: 1} (2 ^ 3 * 3 ^ 2 * 5 = 360)
Então eu poderia escrever:

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

Mas aqui eu tenho 3 horríveis para loops. É possível abstrair isso em uma função dada qualquer fatoração como um argumento de objeto de dicionário?

questionAnswers(5)

yourAnswerToTheQuestion