def __iter__(self):
        """
        Iterate over all values in the trie. Yields tuples of (path, value).

        Implemented using depth first search.
        """
        yield self._path_constructor([]), self.value

        for key, sub_trie in self.children():
            path_to_children = self._path_constructor([key])

            for sub_path, value in sub_trie:
                path = path_to_children + sub_path
                yield path, value

        Iterate over all values in the trie. Yields tuples of (path, value).

        Implemented using depth first search.
        
featuretools/utils/trie.py