http://www.perlmonks.org?node_id=965182


in reply to Multiple Combinatorics

my @set1=(0..7); my @set2=(6..12); my @comb; { local $"=","; @comb = glob"{@set1}-{@set1}-{@set2}-{@set2}-{@set2}"' } print join "\n",@comb;

Then you can grep {...} the result to exclude some results. Of course, this is not very good with big sets or a lot of combinations (time and memory).

Update: I probably post the worst solution beacause you don't want to duplicate elements from set1 and set2. It's possible to "grep" the result to avoid duplicate but it is not beautiful/effective... Anyway, this usage of glob must be known, so I don't delete my contribution :)