Is there a machine learning algorithm to find similar sales patterns?
I would recommend a hierarchical cluster algorithm, after normalising your numbers into proportions. Then the clustering should be able to identify similar patterns. Depending at which level you make the cut, you can decide how many clusters you want.

A great resource on this topic is Kaufman, L., &amp; Roussew, P. J. (1990). "Finding Groups in Data - An Introduction to Cluster Analysis". John Wiley &amp; Sons