over_redeemed(redemptions, caps) where redemptions is a list of coupon code strings (one entry per redemption) and caps is a dict mapping coupon code to its maximum allowed redemptions. Return a sorted list of coupon codes whose actual redemption count in redemptions exceeds its cap in caps. Codes not present in caps are unlimited and never flagged.over_redeemed(['SAVE10', 'SAVE10', 'SAVE10', 'FLAT50', 'FLAT50'], {'SAVE10': 2, 'FLAT50': 5})['SAVE10']
SAVE10 used 3 times but capped at 2; FLAT50 used 2 times, within its cap of 5.
Use `collections.Counter(redemptions)` to get actual counts.
For each code in caps, compare its Counter count to its cap.