use List::MoreUtils qw(uniq); my @p; for (my $i = 1; $i < 10000; ++$i) { my $k = ''; for (my $n = 1; $n < 1000; ++$n) { $k .= $i * $n; my $t = $k; $t =~ s/0//g; if (length($k) != scalar(uniq(split(//, $t)))) { last; } if (length($k) == 9) { print "$i (0-$n): $k\n"; push(@p, $k); } } } print "A=", (sort {$a <=> $b} @p)[-1],"\n";