Looking for a lighter moment, there are of course 6 possibilities:
Delayed due to the police being abusive towards passengers on an earlier train and a guard having to be called
Delayed due to passengers being abusive towards the police on an earlier train and a guard having to be called
Delayed due to the police being abusive towards a guard on an earlier train and passengers having to be called
Delayed due to a guard being abusive towards the police on an earlier train and passengers having to be called
Delayed due to passengers being abusive towards a guard on an earlier train and the police having to be called
Delayed due to a guard being abusive towards passengers on an earlier train and the police having to be called
words = ["a guard","passengers","the police"]
reason = "Delayed due to {} being abusive towards {} on an earlier train and {} having to be called"
for k in range(len(words)):
for j in range(len(words)):
if j == k: continue
hv = list(range(len(words)))
hv[k]=-1; hv[j]=-1
i = list(filter(lambda x:x>-1,hv))[0]
print(reason.format(words[i],words[j],words[k]))