#!/usr/bin/perl
no utf8;
use strict;my @umlaute = qw (a b c d e f g h i);
my @result = ();
sub getCharCount {
my $str = $_[0];
my $count = $str =~ tr/\_/\_/;
return $count;
}
sub permutation {
my $k = $_[0];
my $n = $_[1];
my $b = $_[2];
my $string = $_[3];
if(length($b)==$k) {
#print $b.", ";
my @chars = split(//, $b);
for(my $i=0; $i<@chars; $i++){
$string =~ s/\_/$umlaute[$chars[$i]-1]/e;
}
push(@result, $string);
}
else{
for(my $i=1; $i<=$n; $i++){
permutation($k,$n,$b.$i,$string);
}
}
}
############### M A I N ####################
my $string = "V_r";
my $char_count = getCharCount($string);
my $umlaut_count = scalar @umlaute;
print "Char_Count: <".$char_count.">\tUmlaut_count: <".$umlaut_count.">\n";
print "Anzahl der Kombinationen :".$umlaut_count**$char_count."\n\n";
permutation($char_count, $umlaut_count, "", $string);
for(my $i=0; $i<@result; $i++){
print $result[$i]."\n";
}