Если я всё правильно понял, то можно сгенерировать все возможные значения, записать их в массив, сделать shuffle и взять только первый миллион.
<?
$words=array();
$w='aaaa';
for($i1=0;$i1<27;$i1++)
for($i2=0;$i2<27;$i2++)
for($i3=0;$i3<27;$i3++)
for($i3=0;$i3<27;$i3++)
{
$w[0]=chr(97+$i1);
$w[1]=chr(97+$i2);
$w[2]=chr(97+$i3);
$w[3]=chr(97+$i4);
$words[]=$w;
}
shuffle($words);
?>