My Question may sound noob but here it goes.
I take an input from the user as "Karim@123". I want my Program to create the permutations of the given input treating "Karim", "@" and "123" as single individual units.So the output will be something like "karim123@", "@karim123", "@123karim","123@karim","123karim@". Remember there will be 3! permutations in this particular case. I am using a php function but that function tells me all the permutations of "karim@123" which is not what i want. The function is as follows.
function permute($str,$i,$n) {
if ($i == $n)
print "$str
";
else {
for ($j = $i; $j < $n; $j++) {
swap($str,$i,$j);
permute($str, $i+1, $n);
swap($str,$i,$j); // backtrack.
}
}
}
// function to swap the char at pos $i and $j of $str.
function swap(&$str,$i,$j) {
$temp = $str[$i];
$str[$i] = $str[$j];
$str[$j] = $temp;
}
$str = "hey";
permute($str,0,strlen($str));
PS : I am new to programming and algorithms.
PPS: Please, specify reason before downvoting.