Florence → Milan (1h40) + Milan → Varenna (1h) = under 3 hours to the lake. One change at Milano Centrale. Total cost under €35 if you book smart.
Leg 1: Firenze SMN → Milano Centrale (1h40, from €19.90). Leg 2: Milano → Varenna-Esino (1h, €7.60). Or Milano → Como San Giovanni (38 min, €4.80). Allow 15–20 min for connection. Total: €27.50 minimum.
Frecciarossa to Milan + regional to Varenna. Done in under 3 hours. Book Florence–Milan early; buy Milan–Varenna at the station.