The problem
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
Example:
Input: "aab" Output: [ ["aa","b"], ["a","a","b"] ]
The solution
def partition(self, s: str) -> List[List[str]]: ret = [] def isPal(s): return s == s[::-1] def fn(s, l): if not s: ret.append(l) return for i in range(1, len(s)+1): if isPal(s[:i]): fn(s[i:], l+[s[:i]]) fn(s, []) return ret