input: Write a function to generate a list of all substrings of a given string, sorted in descending order based on their length. Return the list of substrings. If the input string is empty, 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("abc") == ['abc', 'ab', 'bc', 'a', 'b', 'c']
  assert substring_in_order("hello") == ['hello', 'hell', 'ello', 'hel', 'ell', 'llo', 'he', 'el', 'll', 'lo', 'h', 'e', 'l', 'l', 'o']
  assert substring_in_order("") == []
  assert substring_in_order("x") == ["x"]
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