Я знаю, что другие уже объяснили, что это побитовое ИЛИ, но я бы хотел дать свою собственную интерпретацию.
digits = digits | X
скопирует все 1 бит из X в цифры.
digits = digits | 1 << Y
установит один бит цифрами - установит бит Y.
Итак, каждый цикл устанавливает бит в цифрах.