def recursive(it):
s = ''
for c in it:
if c == ',':
if s:
yield s
s = ''
elif c == '[':
for y in recursive(it):
yield s + '.' + y
s = ''
elif c == ']':
if s:
yield s
return
else:
s += c
if s:
yield s
s = 'a,b,c[a,b,c[a]],d'
print(list(recursive(iter(s))))
ZGVmIHJlY3Vyc2l2ZShpdCk6CiAgICBzID0gJycKICAgIGZvciBjIGluIGl0OgogICAgICAgIGlmIGMgPT0gJywnOgogICAgICAgICAgICBpZiBzOgogICAgICAgICAgICAgICAgeWllbGQgcwogICAgICAgICAgICAgICAgcyA9ICcnCiAgICAgICAgZWxpZiBjID09ICdbJzoKICAgICAgICAgICAgZm9yIHkgaW4gcmVjdXJzaXZlKGl0KToKICAgICAgICAgICAgICAgIHlpZWxkIHMgKyAnLicgKyB5CiAgICAgICAgICAgIHMgPSAnJwogICAgICAgIGVsaWYgYyA9PSAnXSc6CiAgICAgICAgICAgIGlmIHM6CiAgICAgICAgICAgICAgICB5aWVsZCBzCiAgICAgICAgICAgIHJldHVybgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHMgKz0gYwogICAgaWYgczoKICAgICAgICB5aWVsZCBzCgpzID0gJ2EsYixjW2EsYixjW2FdXSxkJwpwcmludChsaXN0KHJlY3Vyc2l2ZShpdGVyKHMpKSkp