<｜begin▁of▁sentence｜>### Instruction:
Given a directed graph with edges including a self-loop and parallel edges [(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)], how can you find and list all the simple cycles using the 'simple_cycles' function from NetworkX?
### Response:
import networkx as nx

# Create a directed graph
G = nx.DiGraph()

# Add edges (including a self-loop and parallel edges)
G.add_edges_from([(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)])

# Find all simple cycles
simple_cycles_list = list(nx.simple_cycles(G))

# Print the list of all simple cycles
print('Simple cycles:', simple_cycles_list)
<|EOT|>
