tests = [
    [
        [
            frozenset([5, 8, (1, 2), "rvbc"]),
            frozenset(["fnyh", "esa", 1]),
            frozenset([("cev", "cdv", 0), 18]),
        ],
        False,
    ],
    [
        [
            frozenset([5, 8, (1, 2), "rvbc"]),
            frozenset(["fnyh", "esa", 6]),
            frozenset([("cev", "cdv", 0), 18]),
        ],
        True,
    ],
    [[], True],
    [
        [
            frozenset([5, 8, (1, 2), "rvbc"]),
            frozenset([frozenset(["fnyh", 0]), "esa", 6]),
            frozenset([("cev", "cdv", 0), 18]),
        ],
        False,
    ],
    [
        [
        frozenset(
            [5, 8, (1, (2, 6, (9, 100, 107), 890, (1, (5, 6))), (3, 4, 5)), "rvbc"]
        ),
        frozenset(["fnyh", "esa", 6]),
        frozenset([("cev", "cdv", 20), 18]),
    ],
    False
    ],
]
from collections import defaultdict

def get_uniqs(xs): 
    uniqs=defaultdict(int)
    uniqs[xs] += 1

    if isinstance(xs, (list, tuple, frozenset)):
        for x in xs:            
            _u = get_uniqs(x)
            for e, v in _u.items():
                uniqs[e] += v        
    return uniqs
    
def solve(_s):
    uniqs = defaultdict(int)
    for x in _s:
        r = get_uniqs(x)
        for k, v in r.items():
            uniqs[k] += v
    return uniqs
    

def solve(sets):
    uniqs = defaultdict(int)
    for s in sets:
        u = get_uniqs(s)
        if any(v > 1 for k, v in u.items()) or any(k in uniqs for k in u):
            return False
        uniqs |= u
    return True
    

for xs, res in tests:
    print(solve(xs), res)

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: