Decompose set into elements?
lst = {{{}, "a"}, {{1}, "a"}, {{2}, "a"}, {{3}, "a"}, {{1, 2}, "a"},
{{1, 3}, "a"}, {{2, 3}, "a"}, {{1, 2, 3}, "a"}}
Thread[{List /@ # /. {} -> {{}}, #2}] & @@@ lst // Column
Alternatively,
Tuples[{List /@ # /. {} -> {{}}, {#2}}] & @@@ lst
same result
I believe this is what you want:
expr /. {
idxs_ : {__Integer},
el_
} :> ({{#}, el} & /@ idxs)
where expr
is your expression.