Per rilevare le differenze tra due elenchi (chiamiamoli A e B), generalmente esegui due passaggi. Il primo passaggio controlla ogni elemento di A e verifica se è in B, e in tal caso, se l'elemento in B è stato modificato in qualche modo (se l'elemento è almeno modificabile). Il secondo passaggio consiste nel controllare ogni elemento di B per vedere se non è in A.
Alla fine di questi due passaggi, ti rimane un elenco di tutti gli elementi in A e non in B, tutti gli elementi in B e non in A e tutti gli elementi in entrambi ma differiscono.
Ciò di cui stai parlando è diverso, ma solo leggermente. Invece di 2 liste, hai n. Presumo che alcune specifiche non si applichino ad alcuni prodotti e potrebbero quindi mancare.
Quindi, per poter eseguire un passaggio per ciascuna lista, sarebbe più semplice combinare tutte le specifiche in un singolo Set (eliminare i duplicati). Quindi, per ciascuna specifica, scorrere ciascun prodotto. Prendi il primo prodotto come quadro di riferimento e controllane il valore. Confronta quel valore con ogni altro prodotto per quella specifica finché non trovi una differenza. Se trovi una differenza, interrompi e continua con le specifiche successive. In questo modo, devi solo eseguire un singolo passaggio per ogni prodotto e per ciascuna specifica (ok, due se conti di aver ottenuto un elenco completo di specifiche supponendo che non ce l'hai già).
In questo modo, sai quali specifiche differiscono tra i prodotti. Tuttavia, in generale, in un confronto tra prodotti, si escludono specifiche che non differiscono tra prodotti, quindi piuttosto che evidenziare quelli che sono diversi, vorrei semplicemente suggerire di rimuoverlo completamente. Comunque sono solo i miei 10 centesimi. ;)