Return all such possible sentences.
s ="catsanddog"
dict ="cat", "cats", "and", "sand", "dog"
[cats and dog, cat sand dog]
s ="catsanddog" dict ="cat","cats","and","sand","dog"
[cats and dog, cat sand dog]
"""" 深度优先搜索DFS """ def dfs(s, dic, arr, ans): if not s: ans.append(' '.join(arr)) for w in dic: if s.startswith(w): dfs(s[len(w):], dic, arr + (w,), ans) if __name__ == "__main__": s = input().strip() s = s[s.index('"') + 1:-1] dic = input().strip() dic = eval("[" + dic[dic.index('"'):] + "]") dic.sort(reverse=True) ans = [] dfs(s, dic, tuple(), ans) print('[' + ', '.join(ans) + ']')