As much as you can I would try to have all of the options for each component be configurations within that component. For example, have the cable could have 4 configs, one for each color. I imagine each switch needs to be a different file, but the different colors could be configurations within the switch file. Let's say the only options that require unique files are the plugs and the switches. You can then build your assembly with every component combination. Let's say you have 3 plugs, that would mean your assembly only needs 12 configurations for each combination of (3) plug - (1) cable - (4) switch.
When you go to use the assembly you could pick the combination you want, then manually change the configs of the parts to get the colors you want. Once you drop it into the destination assembly you'd probably need to dissolve it, or else the next time you changed a color it would propagate through all the other assemblies that used that cable.
I don't know what the plug options are but if the different plugs could be configurations within the same part that would simplify things further. If not you could create an assembly that just has all of the different plugs in it and a configuration for each with all but that one plug suppressed. Then you could create some sketch in the plug assembly to use for mating so that switching between the plugs wouldn't mess up the mates. If you can do this then you would pick the plug type just as you would pick the cable color before, and then the only configs of the cable assembly would be for each switch type.
That's just one way you could approach it, I hope that all makes sense.