  We present a sound and complete algorithm, called iterative causal discovery
(ICD), for recovering causal graphs in the presence of latent confounders and
selection bias. ICD relies on the causal Markov and faithfulness assumptions
and recovers the equivalence class of the underlying causal graph. It starts
with a complete graph, and consists of a single iterative stage that gradually
refines this graph by identifying conditional independence (CI) between
connected nodes. Independence and causal relations entailed after any iteration
are correct, rendering ICD anytime. Essentially, we tie the size of the CI
conditioning set to its distance on the graph from the tested nodes, and
increase this value in the successive iteration. Thus, each iteration refines a
graph that was recovered by previous iterations having smaller conditioning
sets -- a higher statistical power -- which contributes to stability. We
demonstrate empirically that ICD requires significantly fewer CI tests and
learns more accurate causal graphs compared to FCI, FCI+, and RFCI algorithms
(code is available at https://github.com/IntelLabs/causality-lab).
