input: Write a python function to generate all possible substrings of a given string.
  assert all_substrings("Hello") == ['H', 'He', 'Hel', 'Hell', 'Hello', 'e', 'el', 'ell', 'ello', 'l', 'll', 'llo', 'l', 'lo', 'o']
  assert all_substrings("abc") == ['a', 'ab', 'abc', 'b', 'bc', 'c']
  assert all_substrings("ab") == ['a', 'ab', 'b']
  assert all_substrings("") == []
output: def all_substrings(s):
      substrings = []
      for i in range(len(s)):
          for j in range(i + 1, len(s) + 1):
              substrings.append(s[i:j])
      return substrings