input: Write a function to generate a list of all substrings from a given string in order from longest to shortest length. The function should return a list of substrings. If the input string is empty, it should return an empty list.
  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("Python") == ['Python', 'ytho', 'thon', 'Oth', 'tho', 'hon', 'yt', 'th', 'ho', 'on', 'P', 'y', 't', 'h', 'o', 'n']
  assert substring_in_order("Greetings") == ['Greetings', 'reting', 'etheng', 'reting', 'elli','roet', 'etti', 'tens', 'ring', 'rits', 'ings', 'ret', 'eti', 'ten', 'nin', 'ing', 'ng', 'g', 'G', 'r', 'e', 'e', 't', 'i', 'n', 'g', 's']
  assert substring_in_order("") == []
  assert substring_in_order("A") == ['A']
  assert substring_in_order("Hello") == ['Hello', 'ello', 'Hell', 'ello', 'Hel', 'ell', 'llo', 'He', 'el', 'll', 'H', 'e', 'l', 'l', 'o']
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