Hiding similar, but slightly more expensive cars also means that you will be showing more entry level cars. I wouldn't wish the entry level chrysler 300 on anyone it is a stupid car that shouldn't have been made, but it will show up first on this search interface because of everything they stripped out and downgraded to make it cheap. If I was searching for a car with something more I would have a better time not using this interface.
What if there are two cars, one of which is $250 more, but which has a few (fairly minor) additional features and is 75 miles closer to the user? Figuring out which car the user wants to see is a hard problem.
That obviously doesn't mean it's not worth working on, but my guess is your current solution is sub-optimal enough you'd be better off displaying all of the results and simply ordering them based on these criteria. Or at least making it very obvious to the user there are other relevant results, since most people are used to all relevant results being displayed in one long list (that's my guess; I'm not an expert in this at all).