I understood that the code below is used to find the letters that we are supposed to censor.
The thing is: if we say we need to censor go, the code above will first find "g" to later find "o". But the problem is that value you're passing to replace is simply "o" but not "go".
for j in range(len(word)):
My suggestion is: you could find the length of the word you need to censor and work with it.
After that, go after those characters who form such word in your list. Start concatenating letters if the first thing you find is part of the word you need to censor, the first element of it .
Keep doing the step above until your new string's length is equal to your word's length.
After you got a new word generated by concatenating letters, check if that's equal to what you need to censor, if so go and censor that thing!
But if the new concatenated string is not equal to the word you need to censor, then go to the next element on text.
I hope my explanation was clear but if it wasn't, let me know and I'll find another way to explain!