if _primitive(x):
    return True, x
d.extend(x)
return False, None
while d:
    ok, x = _next()
if ok:
    yield x
xs = [1, [2], 'abc']
xs.insert(0, xs)
for p in flat(xs):
    pass
Как определить, является ли контейнер бесконечно рекурсивным, и найти его наименьший уникальный контейнер?