input: Write a function to generate all substrings of a given string in order from longest to shortest length. The function should return a list of all substrings.
  
  def substring_in_order(string): 
      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 
  
  assert substring_in_order("abc") == ['abc', 'ab', 'bc', 'a', 'b', 'c']
  assert substring_in_order("python") == ['python', 'pytho', 'ython', 'ytho', 'thon', 'pyth', 'yton', 'pyt', 'yth', 'yto', 'yto', 'tho', 'thon', 'py', 'yt', 'th', 'ho', 'p', 'y', 't', 'h', 'o', 'n']
  assert substring_in_order("") == []
  assert substring_in_order("ab") == ['ab', 'a', 'b'] 
  assert substring_in_order("1234") == ['1234', '123', '234', '12', '23', '34', '1', '2', '3', '4']
output: def substring_in_order(string): 
      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