n個の配列Xに、ランダムな整数値が昇順に入っており、
それぞれの配列から1つづつ値を取りだしてできる全ての順列を調べたいのですが、
スマートな方法が思いつきません。何か良い方法がありましたらご教授お願いします。

*例えばn=3として
A[] = {1,2,4}; B[] = {2,4}; C[] = {1,2,3}から、
{1,2,3}, {1,4,2}, {1,4,3}, {2,4,1}, {2,4,3}, {4,2,1}, {4,2,3}を得ると言った具合です。

自分では樹形図をイメージして作ってみたのですが、イマイチ釈然としません。