<?php

$cores = array('#000', '#333', '#666', '#999'); // do tamanho que você precisar
$coresPorUsuario = array();
$proxima = 0; 

function corUsuario($usuario) {

    global $cores;
    global $coresPorUsuario;
    global $proxima;

    // Usuário ainda não existe na array
    if(empty($coresPorUsuario[$usuario])) {
        // Guarda a cor do usuário e avança para a próxima cor disponível
        $coresPorUsuario[$usuario] = $cores[$proxima++];

        // Se passou da quantidade de cores disponíveis, começa novamente da primeira
        $proxima = $proxima == count($cores) ? 0 : $proxima;
    }

    // Retorna a cor do usuário
    return $coresPorUsuario[$usuario];
}

echo corUsuario('AA') . "\n";
echo corUsuario('AB') . "\n";
echo corUsuario('AC') . "\n";
echo corUsuario('AA') . "\n";
echo corUsuario('AD') . "\n";
echo corUsuario('AE') . "\n";