Notice that, conceptually, the `set(a) | set(b)` operation is different than `a + b`. The former performs set union meaning that duplicates are removed, whereas the latter is a simple concatenation with the possibility for the same item to appear twice.

If these are considered "set operations", then the else part should be replaced by something like:

    c = a + filter(lambda x: x not in a, b)