Let's say I have a table of 4 columns: A, B, C, D. A primary key is on A, B, C.

Index1: is A, D, B, C in that order
Index2: A, B, C, D in that order
and the primary key index: A, B, C

There are queries selecting different columns in different numbers and order. I don't all the queries that hit the table.

Are some indexes here redundant? 

I collected some scripts from the web for finding redundant indexes and they don't return the same results for the database. I guess every author has their own interpretation of what constitutes a duplicate or redundant index.

You can derive this information easily by joining sys.tables.object_id = sys.objects.parent_object_id for those object types.
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'';

SELECT @sql = @sql + N'
  ALTER TABLE ' + QUOTENAME(s.name) + N'.'
  + QUOTENAME(t.name) + N' DROP CONSTRAINT '
  + QUOTENAME(c.name) + ';'
FROM sys.objects AS c
INNER JOIN sys.tables AS t
ON c.parent_object_id = t.[object_id]
INNER JOIN sys.schemas AS s 
ON t.[schema_id] = s.[schema_id]
WHERE c.[type] IN ('D','C','F','PK','UQ')
ORDER BY c.[type];

PRINT @sql;
--EXEC sys.sp_executesql @sql;

PRINT is just there for eyeballing, not for copying and pasting the output (if you want to run it, that's what the commented-out EXEC is for) - if you have a lot of constraints, it may not show the entire script because PRINT is limited to 4,000 characters (8kb). In those cases, if you need to validate the entire script, see this tip for other ways to validate the script before running. For example:
SELECT CONVERT(xml, @sql);

Once you are happy with the output, uncomment the EXEC.
