@x = glob('{a,b,c}'x3); # for testing: all permutations, plus many more
$x = '(?:([a-c])(?!.*\1)){3}'; # regex
for $i (@x) {
$i =~ $x and say $i; # was $x =~ $i
}
####
abc
acb
bac
bca
cab
cba
##
##
@x = glob('{a,b,c}'x6);
$x = '(?:a()|a()|b()|b()|c()|c()){6}\1\2\3\4\5\6'; # limited repeats allowed
for $i (@x) {
$i =~ $x and say $i; # was $x =~ $i
}
##
##
aaaabc
aaaacb
aaabac
aaabbc
aaabca
...
cccbba
cccbca
ccccab
ccccba
##
##
@x = glob('{abc,bcd,cde}'x3);
# permutations of 'abc/bcd/cde'
$x = '(?:abc()|bcd()|cde()){3}\1\2\3';
for $i (@x) {
$i =~ $x and say $i; # was $x =~ $i
}
##
##
abcbcdcde
abccdebcd
bcdabccde
bcdcdeabc
cdeabcbcd
cdebcdabc