def todict(lst, d=0):
    print(lst, d)
if d > len(lst):
    return {}
return {a[d]: todict([x for x in X if x[d] == a[d]], d + 1) for a in lst}
todict(X)
Как превратить список во вложенный словарь в Python