First of all, if you want to take trains in Switzerland, the website of the national railway carrier is a very important source of information. There you can find the whole train and bus schedule and most tickets you can buy there online. It is also important to mention that in Switzerland you can almost reach every village and every small town by train or bus. So public transport is very good, punctual and reliable in general.
You mentioned that you want to stay in Switzerland at the end of December. During that time a lot of people are coming to Switzerland to visit the cities and primarily go skiing in the mountains. So the accommodations will be quite expensive and also booked out.
If you want to visit both cities and small villages and also mountains, then I think you have mainly three options:
Option 1
The first option is to stay in the French region of Switzerland. Then you could visit cities like Geneva, Fribourg or Lausanne and then take the train to Valais and visit the rural mountain regions there. There are also some famous vineyards that you might be interested in. I added some pictures from Valais. There are the most famous mountains of Switzerland. By train it takes around 2 hours.
Option 2
You could also travel to Berne which is the capital of Switzerland and has a really beautiful town or to Lucerene which has some beautiful sights. From there you could also take the train to Valais or the Bernese Oberland.
Option 3
You could travel to Zurich and from there travel to Graubünden. From Zurich to Chur, the capital of Graubünden and a good starting base to explore the rural regions it takes 90 minutes by train.
So it is very difficult to give a concrete recommendation. As cities I would recommend either Lucerne, Berne, Zurich or Geneva. And as a rural and mountainous region I would go to Bernese Oberland or Graubünden.