I have a list of `n`

polygons `(A,B,C,D,E,...)`

which possibly intersect each other.

I need to find a new list of polygons (or multi-polygons) which looks like this:

```
(
Area only in A (A difference from the rest)
Area only in B
Area only in C
...
Area only in A and B (A intersection with B and difference from the rest)
Area only in A and C
Area only in B and C
...
Area only in A,B and C (A intersection with B and C and difference from the rest)
Area only in A,B and D
Area only in A,B and E
....
)```
The only way I can find is to iterate all the combinations and run a simple intersection/difference algorithms but the number rapidly increases.
```