Now I have read the other stackoverflow Game of Life questions and also Googled voraciously.I know what to do for my Python implementation of the Game Of Life.I want to keep track of the active cells in the grid.The problem is I'm stuck at how should I code it.
Here's what I thought up but I was kinda at my wit's end beyond that:  

Maintain a ActiveCell list consisting of cell co-ordinates tuples which are active
dead or alive.
When computing next generation , just iterate over the ActiveCell list,compute cell
state and check whether state changes or not.  
If state changes , add all of the present cells neighbours to the list  
If not , remove that cell from the list  
Now the problem  is : (" . "--> other cell)
B C D
        . A .
        . . .
If A satisfies 3)  then it adds B,C,D
then if B also returns true for 3) ,which means it will add A,C again
(Duplication)  

I considered using OrderedSet or something to take care of the order and avoid duplication.But still these I hit these issues.I just need a direction.
You have two lists, I'll name them currentState, and newChanges.  Here will be the workflow:

Iterate over currentState, figuring out which are newly born cells, and which ones are going to die.  Do NOT add these changes to your currentState.  If there is a cell to be born or a death, add it to the newChanges list.  When you are finished with this step, currentState should look exactly the same as it did at the beginning.
Once you have finished all calculations in step 1 for every cell, then iterate over newChanges.  For each pair in newChanges, change it in currentState from dead to alive or vice versa.

Example:

currentState has {0,0} {0,1} {0,2}. (Three dots in a line)
newChanges is calculated to be {0,0} {-1,1} {1,1} {0,2} (The two end dots die, and the spot above and below the middle are born)
currentState recieves the changes, and becomes {-1,1} {0,1} {1 ,1}, and newChanges is cleared.
Game Of Life : How to keep track of active cells