Me temo que no es posible, en este caso el tiempo no tiene que ver con la complejidad del algoritmo, sino con el numero de iteraciones, que suben de manera exponencial ya que el numero es n!, o sea que si por ejemplo son 4, las iteraciones son 4! o sea 24, pero si son 15!, las iteraciones suben hasta 1 307 674 368 000. O sea que al final tendrias 2 opciones para hacerlo un poco mas "rapido":
1. hacerlo en lenguaje ensamblador.
2. conseguir un procesador mas rapido (doh
).
Saludos