I think I may understand what you want. Try this.
Starting with your data renamed to dat1
.
library(data.table)
dat1 <- structure(list(grid = c(1, 2, 3, 4), name = c("A", "A", "B",
"B"), start_date = c("25/10/2006", "25/10/2006", "13/05/2003",
"13/05/2003"), end_date = c("31/12/2014", "31/12/2014", "04/04/2004",
"04/04/2004")), class = "data.frame", row.names = c(NA, -4L))
(DT <- as.data.table(dat1))
DT[ , ts := paste0(name, grid)]
DT[ , sdate := dmy(start_date)][, edate := dmy(end_date)]
DT1 <- DT[, .(ts, sdate, edate)]
##======================================================
aa <- DT1[ , .(seq(sdate[1], edate[1], by = "week"))]
pl <- rep(DT$ts[1], nrow(aa))
Tot <- cbind(aa, pl)
for( i in 2 : nrow(DT1)) {
bb <- DT1[ , .(seq(sdate[i], edate[i], by = "week"))]
pl <- rep(DT$ts[i], nrow(aa))
bb <- cbind(aa, pl)
Tot <- rbind(Tot, bb)
}
names(Tot) <- c("dates", "name&grid.No")
Tot