#!/usr/bin/perl use Set::CrossProduct; my @arr; my @arr1 = 0..4; my @arr2 = 0..3; my @arr3 = 0..10; push(@arr,\@arr1); push(@arr,\@arr2); push(@arr,\@arr3); my $i = Set::CrossProduct->new(\@arr); print $i->cardinality, "\n"; while (my $a = $i->get) { print "@$a : "; };