$max = 400000;
$temp = explode(' ','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9');
$data = array();
$n = 0;
while ( $n<$max )
{
    shuffle($temp);
    $code = implode('',array_slice($temp,0,4)).'-'.implode('',array_slice($temp,4,4)).'-'.implode('',array_slice($temp,8,4)).'-'.implode('',array_slice($temp,12,4));
    if ( isset($data[$code]) ) continue;
    $data[$code] = true;
    $n++;
}
$keys = array_keys($data); unset($data);