Actually I think wordnet can give you this:
>>> import nltk
>>> from nltk.corpus import wordnet as wn
[(l, l.derivationally_related_forms()) for l in wn.lemmas('die')]
[(Lemma('die.n.01.die'), []), (Lemma('die.n.02.die'),
[Lemma('die.v.07.die')]), (Lemma('die.n.03.die'),
[Lemma('die.v.07.die')]), (Lemma('die.v.01.die'),
[Lemma('death.n.01.death'), Lemma('death.n.02.death'),
Lemma('death.n.03.death'), Lemma('death.n.08.death'),
Lemma('death.n.05.death'), Lemma('death.n.06.Death')]),
(Lemma('die.v.02.die'), [Lemma('death.n.01.death'),
Lemma('death.n.02.death'), Lemma('death.n.03.death'),
Lemma('death.n.08.death'), Lemma('death.n.05.death'),
Lemma('death.n.06.Death')]), (Lemma('die.v.03.die'), []),
(Lemma('fail.v.04.die'), []), (Lemma('die.v.05.die'), []),
(Lemma('die.v.06.die'), []), (Lemma('die.v.07.die'),
[Lemma('die.n.02.die'), Lemma('die.n.03.die')]),
(Lemma('die.v.08.die'), []), (Lemma('die.v.09.die'), []),
(Lemma('die.v.10.die'), [Lemma('death.n.04.dying'),
Lemma('death.n.04.death'), Lemma('end.n.06.death')]),
(Lemma('die.v.11.die'), [])]
Hope this helps,
--
Francis Bond <
http://www3.ntu.edu.sg/home/fcbond/>
Division of Linguistics and Multilingual Studies
Nanyang Technological University