Find all combinations of 4 elements whose sum equals a target in Python
Lists are pretty inefficient for this type of thing. The majority of the complexity is from iterating over the lists and comparing contents. Sets use a hash for their content, reducing complexity.

When using sets, most of the complexity comes from the combinations function.

Here are the results of a time test on your code

res1 = Solution().fourSum([-5,5,4,-3,0,0,4,-2],4)
print(time.time() - start)
# 0.0001342296600341797


The results of a method using only sets

res = Solution().fourSum([-5,5,4,-3,0,0,4,-2],4)
print(time.time() - start)
# 9.918212890625e-05


Code for the second function
(updated to prevent 3-number outputs)

class Solution:
    def fourSum(self, nums, target):
        from itertools import combinations
        res = set()
        # Create all possible combinations

        for i in combinations(nums, 4):
            if sum(i) == target:
                # Turns the tuple of numbers into list of strings
                # Then joins them into a single string
                # This allows hashing for the set
                res.add(" ".join(sorted(list([str(x) for x in i]))))
            # Splits the strings into lists of ints
        return list([ [int(z) for z in x.split()] for x in res])