<｜begin▁of▁sentence｜>### Instruction:
Imagine you're preparing for a flight route optimization project for your airline company. You've been given the task of analyzing the flight transfer network, which currently includes direct routes like so: from Airport A to B, B to C, C back to A, and C to D. These routes can be likened to a directed graph.

For our internal systems to recognize possible self-sustaining loops that can handle traffic without depending on external connections, we need to identify all the strongly connected components within this network. Picture these components as isolated clusters of airports where you can fly from one to any other and back without leaving the cluster.

You've decided to utilize NetworkX, a powerful tool that simulates these connections like a digital air traffic control system. Your mission, should you choose to accept it, is to program this software using a recursive algorithm to find all the clusters of airports that fulfill this requirement.

Could you start this task, ensuring that the recursive algorithm you deploy effectively searches through the network graph to reveal every strongly connected cluster of airports? Consider this as setting the foundation for future route resilience and efficient utilization of our fleet.
### Response:
import networkx as nx
# Create a directed graph
G = nx.DiGraph()
# Add edges
G.add_edge('A', 'B')
G.add_edge('B', 'C')
G.add_edge('C', 'A')
G.add_edge('C', 'D')
# Find strongly connected components
components = list(nx.strongly_connected_components_recursive(G))
# Output components
print('Strongly connected components:', components)
<|EOT|>
