Characteristics are a good idea as long as you do not use multiply items with similar IDs.
For example if you make four Characteristics with IDs 45,46,47 and 48 which are automatically made you will get in your product exactly these numbers as an addition to your product code.
Since product codes and characteristics may be same among 1000 of products it is impossible to use this option as you will never get the code combination you need for your actually product as the system adds its own ID for each Characteristics.
So if I have a base code 400055 and have three characteristics (23,24), (56,57,58), (77,78,79) the code would be 400055_23_56_77, 400055_24_56_77, 400055_23_57_77 .. etc etc ...
In case you have another product, like say 400059 but with the same subcodes you are in a dead end! you will be forced to use the IDs that the system will have made for the latest Characteristics like (299,300,301), (38,39,40) etc etc.
It is very common that different companies have for their subitems the same code but different names.
Of course you can manually change the produced code in the "Manage Variants" but then it wont reflect the Characteristics in the product page anymore because there will be no association anymore.