Post solutions in your preferred language, here is in python for starters:
def solve(puzzle):
from itertools import permutations
words = open('words.txt','r').read().split('\n')
valid = [word for word in words if len(word)>3 and puzzle[4] in word]
result = []
for n in range(4,10):
subset = [word for word in valid if len(word)==n]
result += [''.join(w) for w in permutations(puzzle,n) if ''.join(w) in subset]
return result
print solve('reactions')
There might be better solutions, I just had fun with it and this is what keeps me addicted to programming (in reference to a previous post)