Hola yo me acabo de inventar esto, pero no hago comprobacion de que se repita te pongo el codigo, si no entiende algo me avisas, de todas formas si tengo tiempo lo mejorare.
Código PHP:
<?php
function cadenasAleatorias($numClave=364,$digitos=14,$cadena="xyz") {
$resultadoCadena="";
$NuevoresultadoCadena="";
if($numClave=="")$numClave=364;
if($digitos=="")$digitos=14;
if($cadena=="") $cadena="xyz";
$lenght=strlen($cadena);
$digitosLenght=$digitos / $lenght;
for($j=1;$j<=$numClave;$j++){
for($i=0;$i<=$digitosLenght;$i++){
$resultadoCadena=$resultadoCadena.$cadena;
$resultadoCadena.=substr($cadena, mt_rand(0,$lenght), 1);
}
$NuevoresultadoCadena=substr($resultadoCadena, mt_rand(0,strlen($resultadoCadena)), 1);
$NuevoresultadoCadena=$NuevoresultadoCadena.$resultadoCadena;
$NuevoresultadoCadena=str_shuffle($NuevoresultadoCadena);
$NuevoresultadoCadena= substr($NuevoresultadoCadena,0,14);
echo $NuevoresultadoCadena."<br>";
echo strlen($NuevoresultadoCadena)." digitos<br />";
}
}
cadenasAleatorias(364,14,"xyz");
?>