use Algorithm::Combinatorics qw(combinations); my $lep = int 1; my $rep = int 100; my $iter = combinations( [$lep+2 ..$rep], 3 ); while (my $c = $iter->next) { my ($x, $y, $z) = @$c; foreach my $s (1..$rep/4) { # as before } }