Lecture Notes on 6 Mar 2017 Read Chapter 4: Recursion def sum_num (n): sum_n = 0 num = 1 while (num <= n): sum_n += num num += 1 return sum_n def rec_sum (n): if (n == 1): return n else: return n + rec_sum (n - 1) def rec_sum_list (a, idx): if (idx == len(a) - 1): return a[idx] else: return a[idx] + rec_sum_list (a, idx + 1) def subsets (a, b, lo): hi = len(a) if (lo == hi): print (b) return else: c = b[:] b.append (a[lo]) subsets (a, b, lo + 1) subsets (a, c, lo + 1) def main(): a = ['A', 'B', 'C', 'D'] b = [] subsets (a, b, 0) main()