Hola, podrías guardar todas las letras en una estructura al principio y luego generar tu nuevo código. El pseudocódigo sería así:
Código:
s1 = "XXSDX-AAAA-XAAX"
s2 = "CCCC-VVVV-RRSA"
// obtener las letras
letras = []
por cada letra l en s1+s2{
si l no esta en letras{
agregar l a letras
}
}
// y ya que tengas las letras genera tu codigo
codigo = ""
for (bloque = 0; bloque < 3 ; bloque++){
for (caracter = 0; caracter < 4; caracter++){
codigo + random(letras)
}
//solo agregas guion en la iteracion 0 y 1, la 2 no
si (bloque != 2){
codigo += "-"
}
}
Eso sería un algoritmo, ya solo sería pasarlo a PHP. Saludos!