If a product comes in a few different options—colours/material/finish are examples—then you should show this users on the search results. For example, users who are in the market for a blue sweater will be likely to pass by an image showing a red sweater unless there's a clear indicator that it is available in other colours.
The other option would be to have a separate product page for every variation, where they could all be viewed against each other on the search results. Be aware this could bloat your site and cause confusion if users are basically comparing the same products against each other.
If the variation means the product changes in price then it's usually a good idea to have a separate page. Bigger sizes or more recent models of products can mean things cost more. This is better than displaying a range of prices on the search results, which is harder to compare and hard to understand what the range refers to.