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.
  
  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("abcd") == ["abcd", "abc", "bcd", "ab", "bc", "cd", "a", "b", "c", "d"]
  assert substring_in_order("") == []
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