input: Write a python function to find the longest common proper substring between two strings.
  assert longest_common_proper_substring("abbcde", "aede") == "a"
  assert longest_common_proper_substring("abcdef", "zcdemf") == "cde"
  assert longest_common_proper_substring("xyz", "xyz") == "xyz"
  assert longest_common_proper_substring("abc", "def") == ""
output: def longest_common_proper_substring(s1, s2):
      def get_substrings(s):
          substrings = set()
          n = len(s)
          for length in range(1, n + 1):
              for i in range(n - length + 1):
                  substrings.add(s[i:i + length])
          return substrings
      
      substrings1 = get_substrings(s1)
      substrings2 = get_substrings(s2)
      
      common_substrings = substrings1 & substrings2
      longest_common = max(common_substrings, key=len, default="")
      
      return longest_common