What if I have 50+ different combinations of armor/clothing for each type of character in the game?
you want to go as generic as possible and mix and match. any character graphic with any equipment graphic (to the maximum extent possible). if you think 50 combos is bad, try over 500 types of characters times 60 some odd types of weapons times 40 some odd types of equipment (armor/clothing). that's somewhere in the neighborhood of 1.2 million combos. and that's with 3d meshes, not 2d sprites. but its the same idea. design everything to be as interchangeable as possible.
as mentioned above in another response, the painter's algo can be used when drawing to get the equipment to layer correctly.
you may also want to use a method from 3d for adjusting equipment graphics to characters. in 3d, the concept is called a "weapon bone". what it is, is a generic connection point between a character's graphics and the graphic for a piece of equipment.
for each character graphic you have a connection point (some pixel, relative to the sprites UL corner). for each equipment graphic you have an offset from the connection point. the connection point takes care of variations in the character graphics, and the offset takes care of variations in the equipment graphics.
you start by assigning the connection point for your first character - lets say the UL corner of the sprite.
then you adjust your first equipment graphic to the first character. the difference between the UL corners of the two sprites is the offset for the 1st equipment graphic.
then you adjust the first equipment graphic to the second character.
then subtract the offset for the first piece of equipment to get the attachment point for the second character.
you then use the first equipment graphic to adjust the connection points for the remaining character graphics.
then you can adjust the remaining equipment graphics to the attachment point of any character graphic, and everything will then be interchangeable.
you simply draw all equipment at its offset from the attachment point of the character in question, and everything mixes and matches and lines up automatically.
example:
you line up the 1st character and 1st equipment graphics and get an offset of 1,0 for the 1st equipment graphic (the equipment sprite is drawn one pixel to the right of the character sprite).
then you line up the 1st equipment and 2nd character. the difference is 2,0. subtract the equipment 1 offset of 1,0, and you get the connection point for character 2 = 1,0 (relative to UL corner).
so when you draw equipment1 on character2, you add 1,0 for the equipment, and 1,0 for the character, so you draw it at 2,0, relative to the character's UL corner.