':type board: List[List[str]]
:type words: List[str]
:rtype: List[str]'

def findWords(self, board, words):

    visited = [[False for j in xrange(len(board[0]))] for i in xrange(len(board))]
    result = {}
    trie = TrieNode()
    for word in words:
        trie.insert(word)
    for i in xrange(len(board)):
        for j in xrange(len(board[0])):
            if self.findWordsRecu(board, trie, 0, i, j, visited, [], result):
                return True
    return result.keys()
