Pour ça, il faut regrouper tes matériaux dans un dictionnaire avec comme clef le nom de la texture, par exemple :

Code PHP:
    mats doc.GetMaterials()
    
    
dico = {}
    
    for 
mat in mats :
        
clef 'vide'
        
tex mat[c4d.MATERIAL_COLOR_SHADER]
        if 
mat[c4d.MATERIAL_USE_COLOR] and tex and tex[c4d.BITMAPSHADER_FILENAME] : clef tex[c4d.BITMAPSHADER_FILENAME]


        if 
clef in dico :
            
dico[clef].append(mat)
        else :
            
dico[clef] = [mat]
    
    
groupes dico.values()
    
    for 
mats in groupes :
        print 
mats # Et là tu peux appeler ta fonction de dédoublonnage 

Après, est-ce que la fonction de C4D ne ferait pas l'affaire ? Dans le gestionnaire de matériaux : Fonction > Supprimer les matériaux en double.