Here's how to reproduce a scenario when the same key may be returned during a continuous SCAN.
A detailed explanation: https://groups.google.com/d/msg/redis-db/2V5x4-MOOEk/jNDUY11AEZYJ
> flushdb
OK
> mset 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18
OK
> scan 0 count 3
- "28"
- "6"
- "17"
- "5"
> scan 28 count 3
- "6"
- "12"
- "10"
- "11"
- "15"
> scan 6 count 3
- "29"
- "14"
- "7"
- "2" <----- dupe
- "3"
> del 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3
(integer) 16
> scan 29 count 3
- "0"
- "2" <----- dupe
- "1"