Я сделал это! ![]()
//$s = "9assqd,bxw8u";
$s = "abcd";
$s = strtolower($s);
$chars = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
$len = count($chars);
$result = [$s];
echo "x: y => z\n\n";
for ($x = 1; $x < $len; $x++) {
echo $x, ":\n";
for ($y = 0; $y < $len; $y++) {
echo " ", $y, " => ";
$variant = $chars;
for ($g = 0; $g < $x; $g++) {
$z = $y + $g;
if ($z > $len - 1) {
$z = abs($z - $len);
}
echo $z, " ";
$variant[$z] = strtoupper($variant[$z]);
}
echo "\n";
$variant = join("", $variant);
$result[] = $variant;
echo "\t", $variant, "\n";
}
echo "\n";
}
$result[] = strtoupper($s);
$result = array_unique($result);
foreach ($result as $v) {
echo $v, "\n";
}