%I #32 Oct 03 2024 15:13:26
%S 1,10,11,12,2,20,21,13,3,23,22,24,4,14,15,5,25,26,6,16,17,7,27,28,8,
%T 18,19,9,29,32,30,31,33,34,35,36,37,38,39,43,40,41,42,44,45,46,47,48,
%U 49,54,50,51,52,53,55,56,57,58,59,65,60,61,62,63,64,66,67,68,69,76,70,71,72,73
%N a(n) is the least positive integer not occurring earlier that shares a digit with a(n-1); a(1)=1.
%C A permutation of the positive integers.
%H Reinhard Zumkeller, <a href="/A184992/b184992.txt">Table of n, a(n) for n = 1..10000</a>
%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>
%t FromDigits /@ Nest[Function[a, Append[a, Block[{k = 2, d}, While[Nand[FreeQ[a, #], IntersectingQ[a[[-1]], #]] &@ Set[d, IntegerDigits@ k], k++]; d]]], {{1}}, 73] (* _Michael De Vlieger_, Mar 17 2018 *)
%o (PARI) A184992(n,show=0)={my(a=1,u=2^1);for(k=2,n,show && print1(a",");a=Set(Vec(Str(a))); for(j=2,9e9,bittest(u,j) && next;setintersect(Set(Vec(Str(j))),a) || next; u+=2^a=j; break));a} \\ _M. F. Hasler_, Dec 22 2011
%o (Haskell)
%o import Data.List (delete, intersect); import Data.Function (on)
%o a184992 n = a184992_list !! (n-1)
%o a184992_list = 1 : f 1 [2..] where
%o f u vs = v : f v (delete v vs)
%o where v : _ = filter (not . null . (intersect `on` show) u) vs
%o -- _Reinhard Zumkeller_, Jul 01 2013
%o (Python)
%o from itertools import count, islice
%o def agen(): # generator of terms
%o an, aset, mink = 1, {1}, 1
%o while True:
%o yield an
%o digset = set(str(an))
%o an = next(k for k in count(mink) if k not in aset and set(str(k))&digset)
%o aset.add(an)
%o while mink in aset: mink += 1
%o print(list(islice(agen(), 74))) # _Michael S. Branicky_, Oct 03 2024
%Y Cf. A162501, A076654, A130571.
%Y a(n) = A107353(n) for n>=3. - _Alois P. Heinz_, Dec 22 2011
%Y Cf. A227118 (inverse); A067581.
%K nonn,base
%O 1,2
%A _Eric Angelini_, Dec 22 2011