title: How do I make 100 = 1? (explanation within)
body: <p>Right now I have a code that can find the number of combinations of a sum of a value using numbers greater than zero and less than the value. 
  I need to alter the value in order to expand the combinations so that they include more than just the value.</p>
  
  <p>For example:
      The number 10 yields the results:
          [1, 2, 3, 4], [1, 2, 7], 
          [1, 3, 6], [1, 4, 5], 
          [1, 9], [2, 3, 5], [2, 8], 
          [3, 7], [4, 6]
      But I need to expand this to including any number that collapses to 1 as     well. Because in essence, I need 100 = n in that the sum of the individual numbers within the digits = n. So in this case 100 = 1 because 100 --> 1+0+0 = 1
  Therefore the number 1999 will also be a valid combination to list for value = 100 because 1999 = 1+9+9+9 = 28, and 28 = 2+8 = 10, and 10 = 1+0 = 1</p>
  
  <p>Now I realize that this will yield an infinite series of combinations, so I will need to set limits to the range I want to acquire data for. This is the current code I am using to find my combinations.</p>
  
  <pre><code>def a(lst, target, with_replacement=False):
      def _a(idx, l, r, t, w):
          if t == sum(l): r.append(l)
          elif t &lt; sum(l): return
          for u in range(idx, len(lst)):
              _a(u if w else (u + 1), l + [lst[u]], r, t, w)
          return r
      return _a(0, [], [], target, with_replacement)
  
  for val in range(100,101):
      s = range(1, val)
      solutions = a(s, val)
      print(solutions)
      print('Value:', val, "Combinations", len(solutions))
  </code></pre>