use warnings; use strict; my $digit_pattern = '{0,1,2,3,4,5,6,7,8,9}' x 4; print "$_\n" foreach glob $digit_pattern; #### sort keys { map { $_ => 1 } grep { ! m{(.).*\1} } map { join q{}, sort split m{} } glob $globStr };