Iterator for Combination LeetCode solution in Python
1class CombinationIterator:23def __init__(self, characters: str, combinationLength: int):4self.characters = characters5self.n = len(characters)6self.combinations = gen_combinations(self.n, combinationLength)7self.ind = len(self.combinations) - 189def next(self) -> str:10s = ""11for i in range(self.n):12if self.combinations[self.ind][i] != "0":13s += self.characters[i]14self.ind -= 115return s1617def hasNext(self) -> bool:18return self.ind > -1192021def gen_combinations(l, n):22end = int("1" * l, 2)23ans = []24for i in range(end + 1):25b = bin(i)[2:]26if b.count("1") == n:27ans.append(b.zfill(l))28return ans