This input:
Permutations[Range[12]]
Results in this (error) output:
Permutations::outsize:
The result of evaluating Permutations[{1,2,3,4,5,6,7,8,9,10,11,12}]
would be a packed array with 5748019200 elements, but the number of elements
in a packed array must be a machine integer. >>
That number (5748019200) is interesting, because it's exactly 12 times 12! (that's factorial, not exclamation point)
Presumably, Mathematica is trying to store all 12! length 12 lists in a single monolithic array. I can imagine this failing.
Usually, Mathematica shields me from these types of problems. For example, I had no trouble calculating 12*12!
.
My intention is to Select
some elements from this list, so I don't need to have every permutation in memory at once.
Question: Is there a different way to generate the permutations that avoids this problem?