Convert to frozenset, hash and get:
In [193]: map(tuple, set(map(frozenset, aa)))
Out[193]: [('d', 'c'), ('a', 'b')]
Here is a slightly more readable version with a list:
In [194]: [tuple(x) for x in set(map(frozenset, aa))]
Out[194]: [('d', 'c'), ('a', 'b')]
Note that for your particular use case, the tuple list is not the best choice of data structure. Consider storing your data as a set for starters?
In [477]: set(map(frozenset, aa))
Out[477]: {frozenset({'a', 'b'}), frozenset({'c', 'd'})}