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 :)