import Blender matlist = [] for material in Blender.Material.Get(): if material.getName().find("foo") <> -1: print "Mat :",material.getName() matlist.append(material) for obj in Blender.Object.GetSelected(): if obj.getName().find("bar") <> -1: index = int(Blender.Mathutils.Rand() * len(matlist)) print "Obj :",obj.getName() obj.setMaterial(matlist[index]) Blender.Redraw()