0;$len--) { $mask = $mask."1"; } //echo($mask); $i = base_convert($mask, 2, 10); //echo($i); while(1) { $mask = base_convert($i, 10, 2); $mask = fill_notset($mask, $len, "b"); if(strlen($mask) > strlen($str) || $i < 0) { die(); } //Regular $str = $origstr; for ($len = $origlen-1;$len>=0;$len--) { if(isset($mask[$len]) && $mask[$len] == "1") { $str[$len] = str2upper($str[$len]); } } echo($mask); echo("$str\n"); /*/Reversed $mask = str_replace(array("0","1"), array("1","0"), $mask); $str = $origstr; for ($len = $origlen-1;$len>=0;$len--) { if(isset($mask[$len]) && $mask[$len] == "1") { $str[$len] = str2upper($str[$len]); } } //echo($mask); echo("$str\n"); */ $i--; }