input: Write a python function to list files in a directory recursively.
  assert sorted(list_files('/tmp/stem_test')) == sorted(expected_files)
  assert sorted(list_files('/path/to/another_directory')) == sorted(another_expected_files)
  assert list_files('/non_existent_directory') == []
output: import os
  
  def list_files(directory):
      all_files = []
      for root, dirs, files in os.walk(directory):
          for file in files:
              all_files.append(os.path.join(root, file))
      return all_files