Challenge complete - similar solution to others :)
Awesome challenge; I took something of a 'brute force' approach to it. :)
Solution attached. Similar to others I used a Cartesian join and the FindString function. My stumbling block was getting the concatenated groups, which turned out to be quite simple once I saw that action was available with the Summarize tool.
I can't stop laughing after knowing solution is this simple. I used so many filters and formulas(to calculate intersections and then excluding it) in the end to get to the answer,