everyCombination<T> function
Implementation
Iterable<Iterable<T>> everyCombination<T>(Iterable<Iterable<T>> lists) sync* {
if (lists.length == 1) {
yield* lists.first.map((e) => [e]);
return;
}
for (final element in lists.first) {
yield* everyCombination(lists.skip(1)).map((e) => [element, ...e]);
}
}