\documentclass[tikz]{standalone}
\usepackage[black]{causets}
\usetikzlibrary{fit,shapes.geometric}
% Set colours and style:
\colorlet{future colour}{green!50!black}
\colorlet{past colour}{yellow!50!orange!80!black}
\colorlet{anywhere colour}{red!80!black}
\tikzset{prob arrow/.style={line width=1.5pt}}
% Define some helper functions:
\def\defCevents#1#2#3{\xdef\Ea{#1}\xdef\Eb{#2}\xdef\Ec{#3}}
\def\defDevents#1#2#3#4{\expandafter\defCevents#1#2#3\xdef\Ed{#4}}
\newcommand*{\semiopaque}[1]{% Adds a transparency group.
\begin{scope}[transparency group, opacity=0.5]
       #1
\end{scope}
}
\newcommand*{\drawprobarrow}[4][]{% Draws a (probability) arrow.
\draw[prob arrow] (#2) -- node[sloped, midway, below, #1] {$#3$} (#4);
}
\newcommand{\drawlegendsymbol}{% Draws the symbol for a legend entry.
\draw[prob arrow] (0,0) -- +(10pt, 6pt);
}
\newcommand{\legendsymbol}[1]{% Creates the legend symbol.
\begin{tikzpicture}
       \ifnum#1=0
               \drawlegendsymbol
       \else
               \semiopaque{\drawlegendsymbol}
       \fi
\end{tikzpicture}
}
\begin{document}
\begin{tikzpicture}[-stealth]
       \def\ystep{2.0cm}
       \def\xstep{0.60cm}
       % Create nodes of all causets with 1 to 4 events:
       \begin{scope}[nodes={draw, thin, circle, minimum size=1.1cm}]
               \node (C1) at ( 0,  0) {\pcauset{1}};
               \node (C12) at (-4*\xstep,  1*\ystep) {\pcauset{1,2}};
               \node (C21) at ( 4*\xstep,  1*\ystep) {\pcauset{2,1}};
               \foreach \perm [count=\i from 0] in {123, 132, 312, 213, 321}{%
                       \expandafter\defCevents\perm
                       \node (C\perm) at (4*\i*\xstep-8*\xstep, 2*\ystep) {\pcauset{\Ea,\Eb,\Ec}};
               }
               \foreach \perm [count=\i from 0] in {1234, 1243, 1423, 1324, 1432, 4123, 4132, 3124, 3412, 3142, 4312, 2134, 2143, 4213, 3214, 4321}{%
                       \expandafter\defDevents\perm
                       \node (C\perm) at (2*\i*\xstep-15*\xstep, 3.75*\ystep) {\pcauset{\Ea,\Eb,\Ec,\Ed}};
               }
       \end{scope}
       % Add graph edges for expandings ...
       % ... to the past (additionally):
       \begin{scope}[past colour]
               \foreach \perma/\permb in {12/213, 123/3124, 123/2134, 132/1243, 132/3142, 132/2143, 312/1423, 312/4213, 213/1324, 213/3124, 213/3214, 321/1432, 321/4132, 21/132}
                       \semiopaque{\drawprobarrow{C\perma}{}{C\permb}};
       \end{scope}
       % ... to anywhere (additionally, further):
       \begin{scope}[anywhere colour]
               \semiopaque{\drawprobarrow{C123}{}{C1324}};
       \end{scope}
       % ... to the future:
       \begin{scope}[prob arrow, future colour]
               \drawprobarrow{C1}{p_{12}}{C12}
               \drawprobarrow{C12}{p_{123}}{C123}
               \drawprobarrow{C123}{p_{1234}}{C1234}
               \drawprobarrow[near end]{C123}{p_{1243}}{C1243}
               \drawprobarrow[near end]{C123}{p_{1423}}{C1423}
               \drawprobarrow[near start, above]{C123}{p_{4123}}{C4123}
               \drawprobarrow[above]{C12}{p_{132}}{C132}
               \drawprobarrow[near end]{C132}{p_{1342}}{C1423}
               \drawprobarrow[near end]{C132}{p_{1324}}{C1324}
               \drawprobarrow[midway, above]{C132}{p_{1432}}{C1432}
               \drawprobarrow[near start]{C132}{p_{4132}}{C4132}
               \drawprobarrow[near start, above]{C12}{p_{312}}{C312}
               \drawprobarrow[near end]{C312}{p_{3124}}{C3124}
               \drawprobarrow[near end]{C312}{p_{3412}}{C3412}
               \drawprobarrow[near end]{C312}{p_{3142}}{C3142}
               \drawprobarrow[near start]{C312}{p_{4312}}{C4312}
               \drawprobarrow{C1}{p_{21}}{C21}
               \drawprobarrow[near start, above]{C21}{p_{231}}{C312}
               \drawprobarrow[near start]{C312}{p_{2341}}{C4123}
               \drawprobarrow[near end]{C312}{p_{2431}}{C4132}
               \drawprobarrow{C21}{p_{213}}{C213}
               \drawprobarrow[above]{C213}{p_{2134}}{C2134}
               \drawprobarrow[near start]{C213}{p_{2413}}{C3142}
               \drawprobarrow[near end]{C213}{p_{2143}}{C2143}
               \drawprobarrow[near end]{C213}{p_{4213}}{C4213}
               \drawprobarrow{C21}{p_{321}}{C321}
               \drawprobarrow[near start, above]{C321}{p_{3421}}{C4312}
               \drawprobarrow[near end]{C321}{p_{3241}}{C4213}
               \drawprobarrow[near end]{C321}{p_{3214}}{C3214}
               \drawprobarrow{C321}{p_{4321}}{C4321}
       \end{scope}
       % Add legend:
       \node[above left, align=left, draw, inner sep=3ex, fill=gray!05]
               at (15*\xstep, 0)
               {Expanding towards\\
                \bfseries\color{future colour}\legendsymbol{0}\ the future\\
                \bfseries\color{past colour}\legendsymbol{1}\ + the past\\
                \bfseries\color{anywhere colour}\legendsymbol{1}\ + anywhere};
\end{tikzpicture}
\end{document}