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 these substrings.
  
  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("") == []
output: def substring_in_order(s):
      substrings = []
      n = len(s)
      for length in range(n, 0, -1):
          for start in range(n - length + 1):
              substrings.append(s[start:start + length])
      return substrings