Найти все возможные 2 комбинации букв в заданной строке, используя PHP

Я пытаюсь найти все возможные две буквенные комбинации данной строки. Есть ли более быстрый способ сделать это, чем применить позицию подстроки по положению, а затем снова вызвать функцию?

Ниже я пытаюсь:

function permute($str) { if (strlen($str) < 2) { return array($str); } $permutations = array(); $tail = substr($str, 1); foreach (permute($tail) as $permutation) { $length = strlen($permutation); for ($i = 0; $i <= $length; $i++) { $permutations[] = substr($permutation, 0, $i) . $str[0] . substr($permutation, $i); } } return $permutations; } $str = "tone"; $permutations = array_unique(permute($str)); $str1 = substr_replace($str, "", 1,2); $permutations = array_unique(permute($str1)); 

Учитывая строчный «тон» выше, я хотел бы получить ответы:

 to tn te on oe ne ot nt et no eo en и to tn te on oe ne ot nt et no eo en