Years ago, I wrote a DATA step to find all combinations without using any functions. I had to stop after about 25 values, because the program took so long to run. Let me try to explain why.
Each value you add doubles the number of possible combinations. That value can either be omitted, giving you the same number of combinations you had without the value, or included, giving you another equally sized set of combinations. So with 100 values, you can have 2**100 combinations (I guess you could subtract one because you don't need to include the empty set of all values omitted.)
If you had a machine that could process 1M values per second, it could handle 20 values easily since 2**20 is roughly 1M. Once you get up to 40 values, you would need 1M seconds (almost 12 days if I did the math right). If you wrote a program to process 100 values, you would not live long enough to have it process every combination.
... View more