You can create a dictionary object, and attach it to a/any/all character instance... by putting them into a container.
This way, each character has it's own dictionary automatically, that is always referenced to the correct character (because of the container) - then you can reference the dictionary traits of any specific instance; IE - "key : value" -or- "Shirt : 12" -or- "Pants : 'BlueShorts'" -etc-
This way you can simply use your (dictionary) value of each key as an animation frame or animation name to a "shirt" object (sprite); IE "Shirt : 12"
[Every X seconds/on button clicked/whatever condition]
---Set Pants.sprite animation_frame to Dictionary.get("Shirt") {will return "12" because of, "Shirt : 12"}
---Set Shirt.sprite animation_frame to Dictionary.get("Pants") {etc}
--- Set Hat.Sprite animation_frame to Dictionary.get("Hat") {etc}
--- ETC
Hope this makes sense^
*EDIT*
I'm sure your application of it won't be the same approach but it's much easier than handling a tonne of variables, especially when you just loop through the entries.
~Sol