Working off Jazz+Travel's list, you could also do:
Fly into Venice
Spend time in Venice
Take the train to Varenna (Lake Como)
Spend time in the Como area
Take the train to Florence
Spend time in Florence area
Fly out of Florence.
OR
Fly to Milan
Take the train to Varenna (Lake Como)
Spend time in the Como area
Take the train to Venice
Spend time in Venice
Take the train to Florence
Spend time in Florence area
Fly out of Florence.
The above options would use either Milan or Venice as arrival airports, and Florence as the departure airport. Both Milan and Venice airports are far from the respective city centers, therefore a pain for an early morning return flight, if you choose to return from either. Florence airport instead is 15 min. from the city center, therefore less of a pain if you return from there with an early morning flight. The only drawback of flying out of FLR is that it has no flights to North America, only to European destinations, therefore you would need to connect to a European gateways, therefore you'd need to catch a flight out of FLR early in the morning (between 6:30 and 8:00, depending on flight itinerary). Whereas both Milan MXP and Venice VCE have some direct flights to North American major hub destinations (i.e. ATL, JFK, PHL). So consider all of your options depending on your flight needs and home airport. The arrival in the north and the return from FLR also has the added advantage that there would be no backtracking to the north, with savings of both time and train fare.