I do understand the size of the problem, although I didn't think to calculate the disk space needed, I stopped at the 'This just isn't going to fit in memory' stage. Maybe a little more information would help.
I'm working on a program that generates Sudoku solutions (it doesn't generate puzzles or solve puzzles, just solutions). Each valid solution can be modified to create a new valid solution. The possible permutations run just over 2.4 trillion. Once I get the algorithms all worked out (which I'm about half way there), I plan to break things up and have the work done in a grid system. Currently I can generate around 1 million permutations in 5 seconds.
I need the set restraints as a validation that the permutations have run correctly. I know exactly how many unique permutations there are, and if the numbers don't match I have a problem.
This all started when I had the idea that there are only a small number of unique
patterns in the solution of sudoku puzzles. Not sure if that's true yet, but that's part of what I want to find out.
Considering the disk size issue, maybe I need to look at some sort of compressed storage.
P.S. For the interested the permutations run as follows:
Each set of row (1-3, 4-6, 7-9) can be swaped around without invalidating the puzzle, same with columns. Also each section can be swaped around, same with each column section. Then you can swap any two (or more) symbols and still have a valid puzzle (swap all the 2's and 4's for example). Also the puzzle can be rotated
This leads to 3!*3!*3!*3! = row permutations, same for column permutations
4 roational positions.
9! symbol swaps.
1296*1296*4*362880 = 2,437,996,216,320