public List<List<String>> partition(String s){
        if(s.length() == 0){
            result.add(new ArrayList<String>(list));
        }
        for (int i = 1; i <= s.length();i++){
            if(isPalindrome(s.substring(0,i))){
                list.add(s.substring(0,i));
                partition(s.substring(i));
                list.remove(list.size()-1);
            }
        }
        return result;
    }