You can get a dendrogram from any hierarchical clustering method. The tricky thing here is how to compute the distances between the words. If efficiency is your main concern, I would consider using HDBSCAN clustering.
The Jaro-Winkler distance was originally designed for such tasks. There is an efficient implementation in the python Levenshtein package, but it still might be too slow for computing the distance between all pairs of words.
If this is still too slow, you can opt for some more approximative methods and represented the strings as vectors - bags of characters (or character n-grams). You lose some information about how exactly characters are ordered in the string, but you will get them represented as vectors and vector comparison is fast. In this way, you can use algorithms that do not require comparing all pairs of data points such as K-Means.