my @letters = qw( A B C D E F ); my $len = 4; sub convert { my ($num) = @_; use integer; my $base = @letters; my $rv = ''; for (1..$len) { $rv = $letters[$num % $base] . $rv; $num /= $base; } return $rv; } print(convert($_), "\n") for 0..@letters**$len-1;