En la función str_replace se pueden usar 2 arrays, uno para la búsqueda y otro para el reemplazo.
En el primer array (búsqueda) podrías usar range y te ahorrarías escribir todo el abecedario.
En segundo array puedes armarlo manualmente $array_reemplazo = array("111*", '"112*" etc... o usar una función que "permute", saque las combinaciones posibles entre 1 y 3 de 3 dígitos.
algo así sin la función que "permute":
Código PHP:
Ver original<?php
function replace($text) {
$arrc[] = ' ';
$arrc[] = '*';
$arrr = array('111*', '112*', '113*', '121*', '122*', '123*', '131*', '132*', '133*', '211*', '212*', '213*', '221*', '222*', '223*', '231*', '232*', '233*', '311*', '312*', '313*', '321*',
'322*', '323*', '331*', '332*', '333*');
$arrr[] = ' ';
}
echo replace('andres');
Si no entendí por favor me lo haces saber.
Saludos.