Files
kombi/kombi-recurs.pl

39 lines
747 B
Perl
Raw Normal View History

2017-02-07 20:07:34 +00:00
#!/usr/bin/perl -W
$wort="Michael";
$outword=$wort; #only to have same length
$zu=1;
ForS($wort,0);
print ("\n");
sub ForS{
my $toUseWord = shift;
my $Ebene = shift;
my $i1;
if ($Ebene == length($wort)) {
print( $outword . "|");
if (($zu%10) == 0) { print("\n"); }
$zu++;
}
if ($Ebene < length($wort)) {
for ($i1=0;$i1<length($toUseWord);$i1++) {
$outword = replacepos($outword,$Ebene,1,substr($toUseWord,$i1,1));
ForS(replacepos($toUseWord, $i1 , 1, ""), $Ebene + 1);
}
}
}
sub replacepos{
my $in = shift;
my $spos = shift;
my $len = shift;
my $rep = shift;
my $part1 =substr($in,0,$spos);
my $part2 =substr($in,$spos+$len,length($in) - ($spos+$len));
return $part1 . $rep . $part2;
}
# vim: ts=2 hlsearch si