People have given great advice. I hate the cold and dark German winters but I LOVE Christmas Market season. It really is hard to think of it as being miserable and cold when you're standing under lights with a hot mug of gluhwein in your hand.
Also people seem to consistently overestimate how expensive Germany is. It's the cheapest Western European country to travel in. Christmas market food is good and cheap (7 - 8 bucks gets you a big wurst in a roll with a glass of gluhwein), beer and wine in general are amazingly cheap compared to the USA. And we tend to have cheaper entrance fees to museums and tourist attractions than I've seen anywhere in Europe, and there's usually a discount on offer with some sort of city card or whatever.
If you book a flat with a kitchen, you can go even cheaper, shopping at Aldi or Lidl, I really challenge anyone to call Germany "expensive."
The trains CAN be expensive, at the last minute, but you can get a good value by using a German Rail Pass, and they usually do some offer around Christmas that makes it even cheaper. Or you can get good deals by buying tickets in advance, although some people dislike not having the flexibility, in which case, again, the German Rail Pass. I live here and I still will buy one when people come to visit to do the Christmas Markets.
I really think December is a great time to visit the big cities of Germany for your interests, because museums are always warm, the ease of getting around within and inbetween the big cities is phenomenal. And we border some other places worth visiting too. Some ideas:
-Stuttgart-Esslingen-Ludwigsburg all have unique and fantastic markets, plus the Mercedes and Porsche museums, a Bauhaus neighborhood that's famous if you're into architecture, an excellent history museum in an old castle and a tragically underrated art museum (Staatsgallerie).
-From Stuttgart, Strausbourg is 90 minutes away via TGV (book that ticket as far in advance as you can to save money), you can even do Paris in 3 hrs 15 minutes now.
-The Black Forest has a lot of appeal while snowy, with bigger markets in Freiburg and Baden-Baden. Daytrip over the border to Basel, Switzerland for their market, but don't say overnight due to ridiculous costs
-Frankfurt for museums, history (market is OK)
-Berlin for so many amazing museums, over 50 markets, many of them very unique. THE city to visit in Winter IMO. You could easily spend a week there.
-Down to Franconia for Bamberg and Nurenberg's famous market, and the most amazing art museum in Germany
-Munich for more fantastic museums and unique markets, like the one under the Chinese Tower in the English Garden, daytrip to Regensburg and Augsburg, or Ulm for another medieval Christmas market (not as good as Esslingen's though and technically Ulm is better to day trip from Stuttgart)
-Prague. Just go to Prague.
See? You've easily filled up 3 weeks with great sights and markets and even visited a few other countries.