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 substrings. If the input string is empty, the function 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("abcd")==['abcd', 'bcd', 'abc', 'cd', 'ab', 'bc', 'd']
  assert substring_in_order("xyz")==['xyz', 'xy', 'yz', 'x', 'y', 'z']
  assert substring_in_order("")==[]
  assert substring_in_order("a")==['a']
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