Fine, then why don't you write your leases in a way that reflects your preferences? Instead of saying that if they break the lease early, that they owe you 3 months rent, say that as long as they give you 30 days notice, and the apartment is clean and empty on the 1st, you call it even.
This would be the equivalent of a month to month lease, and many landlords will be open to that, although for a slightly higher price as they have to account for a potentially higher turnover. Additionally, many lease contracts have early termination clauses that leave a door way open to early termination by agreement of both parties, thus as long as the tenant and landlord are willing to work out something, what you suggest above is clearly attainable, and much preferred over an eviction - it just requires a conversation between the two parties. Now if either of the parties is unreasonable of course or unwilling to even entertain a conversation, no sort of contract will help.
That's called a month to month agreement, they are widely available.