Implement three classic backtracking generators, without using itertools:
subsets(items): all subsets, each keeping the original order, listed in the order produced by "include or skip each item, trying skip first"permutations(items): all orderings in lexicographic order of positions (as itertools.permutations would produce them)combination_sum(candidates, target): all unique combinations of positive candidates that sum to target, where each candidate can be reused. Each combination is sorted ascending, and the list of combinations is sorted.Return lists of lists.