[Numpy-discussion] Permutation in Numpy
Hee-Seng Kye
kyeser at earthlink.net
Sun Jul 25 04:25:14 EDT 2004
#perm.py
def perm(k):
# Compute the list of all permutations of k
if len(k) <= 1:
return [k]
r = []
for i in range(len(k)):
s = k[:i] + k[i+1:]
p = perm(s)
for x in p:
r.append(k[i:i+1] + x)
return r
Does anyone know if there is a built-in function in Numpy (or Numarray)
that does the above task faster (computes the list of all permutations
of a list, k)? Or is there a way to make the above function run faster
using Numpy?
I'm asking because I need to create a very large list which contains
all permutations of range(12), in which case there would be 12!
permutations. I created a file test.py:
#!/usr/bin/env python
from perm import perm
print perm(range(12))
And ran the program:
$ ./test.py >> list.txt
The program ran for about 90 minutes and was still running on my
machine (667 MHz PowerPC G4, 512 MB SDRAM) until I quit the process as
I was getting nervous (and impatient).
I would highly appreciate anyone's suggestions.
Many thanks,
Kye
More information about the NumPy-Discussion
mailing list