input: 
  def substring_in_order(string):
      """
      Given a string, this function returns all of its substrings in order from longest to shortest length.
      
      >>> substring_in_order("abcd")
      ['abcd', 'bcd', 'cd', 'd', 'abc', 'bc', 'c', 'ab', 'b', 'a']
      
      >>> substring_in_order("hello")
      ['hello', 'elloh', 'llohe', 'lohel', 'ohell', 'ell', 'llo', 'loh', 'ohe', 'hel', 'ell', 'llo', 'loh', 'ohe', 'ell', 'llo', 'loh', 'ohe', 'hel', 'ell', 'llo', 'loh', 'ohe', 'ell', 'llo', 'loh', 'ohe', 'he', 'el', 'll', 'lo', 'oh', 'he', 'el', 'll', 'lo', 'oh', 'he', 'el', 'll', 'lo', 'oh', 'he', 'el', 'll', 'lo', 'oh', 'h', 'e', 'l', 'l', 'o', 'h', 'e', 'l', 'l', 'o', 'h', 'e', 'l', 'l', 'o', 'h', 'e', 'l', 'l', 'o']
      """
      result = []
      n = len(string)
      for l in range(n, 0, -1):
          for i in range(n-l + 1):
              result.append(string[i:i+l])
      return result
  
output:     result = []
      n = len(string)
      for l in range(n, 0, -1):
          for i in range(n-l + 1):
              result.append(string[i:i+l])
      return result